javaSE之面向对象与内部类
继承:有权使用父类成员,可以不重写直接用。
实现:实现一个接口,拥有接口功能,但需实现类自己重写,侧重重写。
接口
-
语法: 1.7及之前
-
公共静态常量:public static final 其中这些可任意省略,默认的。
-
公共抽象方法(无方法体):public abstract 可任意省略。
-
-
使用:
-
接口不能实例化
-
需要通过实现类进行实现 implements
-
使用:通过具体的实现类对象调用
-
具体实现类:重写所有抽象方法+按需新增
-
抽象实现类:按需重写+按需新增。 需要具体的子类继承,重写抽象方法
-
-
接口可多实现,类只能单继承。
-
一个类先继承后实现。
-
只能类实现接口,多实现关系。
-
接口与接口之间,只能继承,不能实现,一个接口可以多继承其他接口
-
内部类(可继承extends,可实现implements)
-
成员内部类
-
私有内部类
-
静态内部类
-
局部内部类
-
匿名内部类:
-
作用:简化实现类|子类,没有自己类本身作用的实现类|
-
匿名内部类对象 :实现类|子类+创建对象
-
匿名对象:只能在当前位置使用一次
-
引用指向匿名内部类对象 接口多态:接口引用调用的为接口中定义的成员
-
匿名内部类对象作为方法的实参
-
-
new Smoke(){ //实现类类体|抽象类的子类类体 @Override public void smoking() { System.out.println("边吸烟边吐烟圈..."); } }
-
注意:
-
成员内部类中不能定义静态内容,除了静态常量。
-
成员内部类中可以直接使用外部类的成员,包括私有
-
外部类中可以通过成员内部类的对象调用成员内部类的成员 ,包括私有
-
通过外部类对象去创建成员内部类对象,通过成员内部类对象调用成员内部类成员。
-
作用:简化匿名内部类对象
-
前提:继承或接口(接口中只有一个必须被重写的抽象方法)
-
强制检查是否为函数式接口: @FunctionalInterface
-
语法:() ->{}
-
() 接口中抽象方法的参数列表
-
-> lambda符号
-
{} 重写方法的方法体
-
-