抽象类和抽象方法

抽象方法:将共性行为抽取到父类后,由于每一个子类执行的内容是不一样的,所以在父类中不能确认具体的方法体,该方法就可以定义为抽象方法


抽象类:如果一个类中存在抽象方法,那么该类必须被声明为抽象类

注意事项

  • 抽象类不能被实例化
  • 抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类
  • 可以有构造方法
  • 抽象类的子类

       要么重写抽象类中的所有抽象方法
       要么是抽象类

接口

接口就是一种规则,是对行为的抽象

接口的定义与使用

  • 接口用关键字interface来定义    

            public interface 接口名{}

  • 接口不能实例化
  • 接口和类之间是实现关系,通过implements关键字来表示

            public class 类名 implements 接口名{}

  • 接口的子类(实现类)

       要么重写接口中的所有抽象方法
       要么是抽象类

注意

接口和类的实现关系,可以单实现,也可以多实现
        public class 类名 implements 接口名1,接口名2{}
实现类还可以在继承一个类的同时实现多个接口
        public class 类名 extends 父类 implements  接口名1,接口名2{}


接口中成员的特点

  • 成员变量

      只能是常量

      默认修饰符 :public static final

  • 构造方法

      没有

  • 成员方法

     只能是抽象方法

     默认修饰符:public abstract

接口的应用

1.接口代表规则,是行为的抽象,想要让哪个类用于一个行为,就让这个类实现对应的接口就可以了

2.当一个方法的参数是接口时可以传递接口所有实现类的对象,这种方法称为接口多态

接口和类之间的关系

  • 类和类的关系

           继承关系,只能单继承,不能多继承,但是可以多层继承

  • 类和接口的关系

           实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口

  • 接口和接口的关系

           继承关系,可以单继承,也可以多继承

适配器设计模式

解决接口与接口实现类之间的矛盾问题

当一个接口中抽象方法过多,但是我只要使用其中一部分的时候,就可以适配器设计模式

书写步骤:

编写中间类XXXXAdapter,实现对应的接口

对接口中的抽象方法进行空实现

让真正的实现类继承中间类,并重写需要用的方法

为了避免其他类创建适配器的对象,中间的适配器类用abstract进行修饰 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐