抽象类

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();
  }
}

posted on 2018-03-11 16:17  QiuLing  阅读(109)  评论(0)    收藏  举报

导航