博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象类
阅读量:6268 次
发布时间:2019-06-22

本文共 1155 字,大约阅读时间需要 3 分钟。

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

转载于:https://www.cnblogs.com/QiuLing/p/8544558.html

你可能感兴趣的文章
Splunk作为日志分析平台与Ossec进行联动
查看>>
yaffs文件系统
查看>>
Mysql存储过程
查看>>
NC营改增
查看>>
Lua
查看>>
Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录
查看>>
postgresql 获取刚刚插入的数据主键id
查看>>
C# Activex开发、打包、签名、发布 C# Activex开发、打包、签名、发布 [转]
查看>>
05-Vue入门系列之Vue实例详解与生命周期
查看>>
验证码展示
查看>>
浅谈大型web系统架构
查看>>
淘宝大秒系统设计详解
查看>>
linux如何修改登录用户密码
查看>>
Kali Linux 2017中Scapy运行bug解决
查看>>
Python监控进程性能数据并画图保存为PDF文档
查看>>
Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
查看>>
Mac OS 10.10.3下Apache + mod_wsgi配置【一】
查看>>
Hibernate基于注解的双向one-to-many映射关系的实现
查看>>
算法竞赛入门经典 例题 3-2 蛇形填数
查看>>
remove-duplicates-from-sorted-list I&II——去除链表中重复项
查看>>