JAVA 多态之抽象类
在Java中有个关键字叫做abstract,可以用它修饰类,成员方法。
采用abstract修饰类,这个就是抽象类,修饰方法,这个方法叫做抽象方法。抽象类只有方法签名,没有方法体。
public abstarct class A {
public abstract void run();
}
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。
·类该有的成员(成员变量、方法、构造器)抽象类都可以有。
·抽象类最主要的特点:抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现。
·一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类。
public abstract class Animal {
private String name;
public abstract void cry();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ublic class cat extends Animal{
@Override
public void cry(){
System.out.println(getName() + "喵喵喵的叫");
}
}
public class dog extends Animal {
@Override
public void cry(){
System.out.println(getName() + "汪汪汪的叫");
}
}
blic class test {
public static void main(String[] args) {
//掌握抽象类的好处
Animal a=new cat();
a.cry();
}
}
抽象类场景和好处:
父类知道每个子类都要做某个行为,但每个子类要
做的情况不一样,父类就定义成抽象方法,交给子类去重写实现,我们设计这样的抽象类,就是为了更好的支持多态。