1、语法定义
抽象类前使用abstract关键字修饰,则该类为抽象类
2、应用场景:
a. 父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。
b. 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性。
3、作用
限制规定子类必须实现某些方法,但不关注实现细节
4、使用规则
a. abstract定义抽象类
b. abstract定义抽象方法,只有声明,不需要实现
c. 包含抽象方法的类一定是抽象类
d. 抽象类中可以包含普通的方法,也可以没有抽象方法
e. 抽象类不能直接创建,可以定义引用变量
5、代码示例
定义abstract父类:
public abstract class Telephone {
public abstract void call(); public abstract void message();}定义CellPhone子类:
public class CellPhone extends Telephone {
@Override
public void call() { System.out.println("通过键盘打电话"); }@Override
public void message() { System.out.println("通过键盘发短信"); }}
定义SmartPhone子类:
public class SmartPhone extends Telephone {
@Override
public void call() { System.out.println("通过语音打电话"); }@Override
public void message() { System.out.println("通过语音发短信"); }}
使用:
public class Initail {
/** * @param args */ public static void main(String[] args) { Telephone tel1 = new CellPhone(); tel1.call(); tel1.message(); Telephone tel2 = new SmartPhone(); tel2.call(); tel2.message(); }}