一、抽象类
1. 抽象类必须使用 abstract class 进行声明,不能被实例化
2. 抽象类的子类,若不实现所有抽象方法,则依然是个抽象类
3. 可以不定义任何抽象方法
二、接口
1. 接口必须使用 interface 进行声明,不能被实例化
2. 接口内定义的字段,自动设为 public static final
3. 接口的方法,自动设为 public ;在实现接口的类中,方法必须加上 public
4. 接口可以不定义方法
三、内部类
1. 内部类的定义与普通类相似,只不过定义体处在另一个类的定义范围中;甚至是在一个类的方法内部
2. 内部类可以使用 public、friendly(默认缺省)、protected、private 进行修饰;而非内部类只能使用 public、friendly(默认缺省)
3. 当内部类使用 private 修饰时,将对外隐藏内部类的存在,起到将内部实现完全与客户程序员隔绝的目的
4. 内部类可访问其封装类的所有成员(字段、方法)
5. 匿名内部类