Abstract 关键字
Abstract 可以修饰类、方法
关键点
- 如果一个类被修饰为abstract,则此类必须被继承使用
- abstract类不能存在对象
- abstract类可以将子类的共性最大型度的抽取出来,放在父类中,以提高简洁性
- abstract修饰某个方法的,此时这个方法为抽象方法,不许呀实现,在子类中实现后才可以生效
- 抽象类中可以包含普通的方法,也可以没有抽象方法
注意
private void print(){};此语句表示方法的空实现。
Abstract void print(); 此语句表示方法的抽象,无实现。
子类的方法必须覆盖父类的抽象方法,方法才能够起作用。
为了实现多态,那么父类必须有定义。而父类并不实现,留给子类去实现。此时可将父类定义成abstract类。如果没有定义抽象的父类,那么编译会出现错误。
Abstract和static不能放在一起,否则便会出现错误。(这是因为static不可被覆盖,而abstract为了生效必须被覆盖。)
例子
public abstract class Telphone{
public abstract void call();
public abstract void message();
}
public class CellPhone extends Telphone{
@Override
public void call(){
}
@Override
public void message(){
}
}
public class SmartPhone extends Telphone{
@Override
public void call(){
}
@Override
public void message(){
}
}
public class Test{
public static void main(String[] args){
Telphone tp1 = new CellPhone();
tp1.call();
tp1.message();
Telphone tp2 = new SmartPhone();
tp2.call();
tp2.message();
}
}