1.应用场景
a.父类知道子类应该用什么方法 ,但是不知道这些子类如何具体地实现这些方法
b.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类的随意性
2.限制规定子类必须实现某些方法,但不关注实现细节
3.使用规则
抽象类不能直接创建,即不能实例化,但可以定义引用变量
1)abstract修饰抽象类、
2)abstract修饰抽象方法
3)抽象类中可以有普通方法
4)有抽象方法的类是抽象类
public abstract class Telphone {
public abstract void call();
public abstract void message();
}
public class Smartphone extends Telphone {
@Override
public void call() {
System.out.println("通过语音打电话");
}
@Override
public void message() {
System.out.println("通过语音发短信");
}
}
public class Cellphone extends Telphone {
@Override
public void call() {
System.out.println("通过键盘打电话");
}
@Override
public void message() {
System.out.println("通过键盘发短信");
}
}
public class Initiaal {
public static void main(String[] args) {
Telphone t1=new Smartphone();
t1.call();
t1.message();
Telphone t2=new Cellphone();
t2.call();
t2.message();
}
}
通过语音打电话
通过语音发短信
通过键盘打电话
通过键盘发短信