接口
接口没有构造方法,实现类默认继承的是Object类
jdk8之前接口只有抽象方法
(了解)jdk8之后有 default修饰的默认方法,用于接口新增方法
static修饰的静态方法,只能通过接口名调用
(了解)jdk9之后 private修饰的私有方法,只能在接口下使用,用于抽取接口中的重复方法
多态
什么是多态?
同一个对象,在不同时刻表现出来的不同形态
多态的前提条件有哪些?
要有继承/实现关系
要有方法重写
要有父类引用指向子类对象
接口也可以作为多态 父类引用
*父类引用指向子类对象
多态中成员的访问特点
*成员方法:编译看左边,运行看右边
多态的好处
提高了代码的扩展性
定义方法时,如果将父类型作为参数,在使用方法时,可以传递任意子类对象
多态的弊端
不能使用子类特有的方法
内部类
匿名内部类
new 接口/父类(){
重写方法
}
在方法下创建类(局部内部类),创建的是子类/实现类。再重写父类/接口中方法就是匿名内部类
匿名内部类 用对象接收时 可以看作是多态的体现
interface Inter{ void method(); } class Test{ public static void main(String[] args){
//多态 Inter inter = new Inter(){ @Override public void method(){ System.out.println("我是匿名内部类"); } }.method(); // 直接调用方法 } }
lambda 函数式接口 (有且只有一个抽象方法)
方法参数是 接口 用的就是多态思想
原文:https://www.cnblogs.com/yifas/p/13184851.html