--- 恢复内容开始 ---
抽象类
语法详解
当一个类中有一个抽象方法, 那么他必须是一个抽象类
抽象类不能通过 new 来创建对象
抽象类可以包含抽象方法, 但不是必须
若一个类继承自抽象类, 那么他必须实现父类中的抽象方法, 或者将自己声明为抽象类.
当一个类声明实现某个或某些接口, 但是却没有实现它所有的抽象方法, 那么这个类也必须声明为抽象类
接口中的抽象方法必须用 public 修饰, 抽象类中的抽象方法可以用除了 private 以外的修饰符修饰.
想必接口, 抽象类可以包含属性和方法, 接口中只能包含抽象方法
抽象类的作用
若想要父类中的方法一定要被子类重写, 则需要用到抽象类
内部类
类的内部, 方法的内部都能存在类, 它们统称为内部类.
类中的内部类 -- 成员内部类
方法中的内部类 -- 局部内部类(类似于成员变量局部变量)
内部类和普通类的语法规则都是相近的, 并且也能使用继承, 接口
静态方法中不能使用非静态内部类
内部类的使用
java 中引入内部类的目的是为了辅助外部类, 所以绝大多数情况下内部类是在外部类的内部使用, 很少会在外部类之外使用一个内部类.
引入内部类时, import 外部类. 内部类
(*)在外部类之外使用内部类: 1. 非静态内部类 new + 外部类引用. new + 内部类类名(构造方法参数)2. 静态内部类, 直接 new 内部类
内部类可以访问外部类的所有成员, 无论他的修饰符是什么
匿名内部类
1. 匿名内部类没有名字
2. 匿名内部类没有构造方法
3. 匿名内部类无法显示的继承或实现接口
4. 匿名内部类没有修饰符
匿名内部类的语法
new 接口名 (抽象类名). 之前说过, 接口和抽象类不能被实例化, new 关键词相当于创建了一个 实现了该接口(继承了该抽象类) 的匿名类的实例
来源: http://www.bubuko.com/infodetail-2585293.html