抽象类
- 代表一个抽象概念的类;
- 规定整个类家族都必须具备的属性和行为。
一、抽象类性质
- 类名前加修饰符abstract;
- 可包含常规类能包含的任何成员,包括非抽象方法;
- 也可包含抽象方法:用abstract修饰,只有方法原型,没有方法的实现(没有方法体);
- 没有具体实例对象的类,不能使用new方法进行实例化,只能用作超类;
- 只有当子类实现了抽象超类中的所有抽象方法,子类才不是抽象类,才能产生实例;
- 如果子类中仍有抽象方法未实现,则子类也只能是抽象类。
二、抽象方法的优点
- 隐藏具体的细节信息,所有的子类使用的都是相同的方法原型,其中包含了调用该方法时需要了解的全部信息;
- 强迫子类完成指定的行为,规定所有子类的“标准”行为。
三、抽象类和普通类的区别?
- 抽象类不能被实例化 普通类可以
- 抽象类要被 abstract修饰 普通类不能
- 抽象类可以有抽象方法 普通类一定不能有
- 抽象类被继承时 子类必须重写全部的抽象方法或者将这个子类改为抽象类,而普通类没有要求。
四、抽象方法和普通方法有什么区别?
- 抽象方法没有方法体 普通方法一定要有方法体
- 抽象方法一定要有abstract修饰 普通方法一定不能有
- 抽象方法只能在抽象类中,普通方法既可以在抽象类中也可以在普通类中。
五、使用抽象类的优势是什么?
- 抽象类提供了部分实现,使子类可以重用部分抽象类的代码 (提高代码的复用性)。
- 抽象类为其子类提供了共同的接口。
-
抽象类中的抽象方法在子类中重写,保证了子类还具有自身的独特性。
- 通过抽象类指向其子类的对象,可以实现多态。
接口
一、实现多个接口的语法是什么?
- 修饰符 class 类名 [extends 父类名] implements 接口1,接口2,接口3 ,....{}
二、接口性质
- 子类通过implements来实现接口中的规范。
- 接口不能创建实例,但是可用于声明引用变量类型。
- 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
- JDK1.8(不含8)之前,接口中只能包含静态常量(public static final String name="OK";)、抽象方法(public abstract void ccc();),不能有普通属性、构造方法、普通方法。
- JDK1.8(含8)后,接口中包含普通的静态方法、默认方法(default void ccc(){})。
标签:子类,接口,普通,抽象,抽象类,方法 From: https://www.cnblogs.com/curry3000/p/17149445.html