15.抽象类
-
抽象类和抽象方法
- 抽象类:abstract修饰符声明的类。
- 抽象方法:abstract修饰符声明的方法。
-
抽象类: abstract class
- 抽象类不能用来实例化对象(不能使用new来创建对象!),声明抽象类的唯一目的是为了将来对该类进行扩充,它是用来让子类继承的。
- 抽象类中包含的方法可以是抽象方法,也可以是非抽象方法
- 如果一个类包含抽象方法,那么该类一定要声明为抽象类
-
抽象方法: abstract method
- 抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供
- 抽象方法不能被声明成 static 和 final
- 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也声明是抽象类
- 包含抽象方法的类必须声明为抽象类。但抽象类可以不包含抽象方法
- 抽象方法的声明以分号结尾,没有方法体。如: public abstarct sampMethod();
//abstract class:抽象类 //抽象类是用来extends的,java支持单继承,不支持多继承! (接口interface可以多继承!) public abstract class Abstclass { //抽象方法:声明一个方法,但不写方法的实现。用于约束此类的方法,让其他人来实现! public abstract void doSomething(); //非抽象方法 public void playSomething(){ System.out.println("AbsClass playSomething~~~"); } //抽象类构造器 public AbstClass() { System.out.println("抽象类AbstClass的构造方法"); } }
//子类继承自一个抽象类,就必须实现该父类的所有抽象方法!除非子类也声明为abstract类 public class SubClassA extends Abstclass{ @Override public void doSomething() { System.out.println("SubClassA doSomething~~~"); } }
//继承自抽象类的子类,如果声明为abstract类,父类的抽象方法可以不用实现!当然也可以实现 public abstract class SubClassB extends AbstClass {}
------------------------------“笔记整理自跟着《狂神说Java》”----------------------------------