ERHAIMOON_学习日志(day16)

  1. 父类对象作为方法参数的好处

    可以传入任何子类对象,形成多态

  2. 父类作为方法的返回值的益处

    可以返回任何子类对象,形成多态

  3. 父类引用作为类属性的益处

    可以为该属性该类的任何子类对象,形成多态

  4. 抽象类的作用

    抽象类的抽象方法是定义规范的,让子类遵守规范,导致在子类和父类之间形成方法重写的关系,进而形成多态的设计,最终实现一个良好的扩展性需求

抽象类的局限性

java中类是单继承的,就是一个类只有一个直接父类

​ 定义宠物的父类Pet,子类有猫,狗

​ 定义爬树的父类CB,子类有猫,熊

​ 猫的父类应该是宠物类和爬树类

class Cat extends Pet,CB{//错误,java是单继承的
    
}

用接口解决这个问题

接口

​ 使用interface关键字修饰的是接口,使用class修饰的是类,使用enum修饰的是枚举,使用@interface修饰的是注解。

定义接口

interface IUsb{
    
}

接口的规则

  1. 接口中可以包含属性,但是属性必须是常量,也就是static final修饰的。static和final可以省略,若省略在编译时jvm会自动为接口的属性添加关键字 static final。
public interface IUsb{
    static final int AGE=0;//等同于int AGE=0;
}
  1. 接口中的属性访问修饰符是public的,可以省略,若省略public,在编译的时候,jvm会自动为接口属性添加public。
public interface IUsb{
    public int AGE=0;//等同于int AGE=0;
}
  1. 接口名的访问修饰符与类相同,可以是public和默认
  2. 接口中可以定义方法,接口中定义的方法必须是abstract方法,必须是public的方法。其中public和abstract可以省略,在编译时jvm会自动田间abstr和public。
public interface IUsb{
    public abstract void wind();//等同于void wind();
}
  1. 接口中不允许有实现的方法
  2. 接口不能实例化

接口的作用

​ 接口中的方法是抽象方法,因此接口不允许实例化,我们之前已知抽象方法是定义规范的,因此接口也是定义规范的。

接口的作用与抽象类相同

接口的使用

  • 子类与父类之间是继承关系 extends
  • 子类与接口之间是实现关系 implement

接口和抽象类的区别

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1