接口、多态、内部类、lambda

接口

接口没有构造方法,实现类默认继承的是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 函数式接口 (有且只有一个抽象方法)
方法参数是 接口 用的就是多态思想

猜你喜欢

转载自www.cnblogs.com/yifas/p/13184851.html