abstract抽象类
在java中有一个关键字叫:abstract,可以用它修饰类、成员方法
注意:
- 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
- 类该有的成员(成员变量、方法、构造器)抽象类都可以有
- 抽象类最主要的特点:抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现
- 一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类
//抽象类
public abstract class AbstractDemo {//抽象方法:必须用abstract修饰,只有方法签名,一定不能有方法体private String name;public abstract void run();public AbstractDemo() {}public AbstractDemo(String name) {this.name = name;}public void setName(String name) {this.name = name;}
}
public class A extends AbstractDemo {@Overridepublic void run() {System.out.println("run");}
}
抽象类的场景和好处
- 父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去重写实现,设计这样的抽象类,是为了更好的支持多态