抽象类(abstract class)

随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。

abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法

抽象方法:只有方法的声明,没有方法的实现。以分号结束
  abstract int abstractMethod1( int a );

含有抽象方法的类必须被声明为抽象类

抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体

不能用abstract修饰私有方法,构造方法,静态方法

抽象类举例

abstract class A {
  abstract void m1( );
  public void m2( ) {
    System.out.println("A类中定义的m2方法");
  }
}

class B extends A {
  void m1( ) {
    System.out.println("B类中定义的m1方法");
  }
}

public class Test {
  public static void main( String args[ ] ) {
    A c = new B( );
    c.m1( );
    c.m2( );
  }
}

抽象类应用

抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类

public class TestAbstract {

  public static void main(String[] args) {
    E e = new F();
  }
}

abstract class E {
  abstract void test();
  private void aa() {}
}

class F extends E {

  @Override
  void test() {
  }
  void aa() {}
}

最新文章

  1. 微信公众号开发之VS远程调试
  2. 修复VS,恢复初始状态
  3. Java Web开发之分页(ajax)
  4. poj2280Amphiphilic Carbon Molecules(极角排序)
  5. lhgdialog在打开的窗口里点击按钮关闭当前窗口
  6. SQL2008 强烈要求限制最大内存
  7. HDU3535AreYouBusy(分组背包)
  8. Android:常见错误提示
  9. C++抽象编程·运算符重载与友元函数
  10. 前端工程师:电信专业转前端是如何拿到阿里、腾讯offer的?
  11. 基于FPM制作nginx RPM包
  12. IIS日志分析工具-Log Parser
  13. 构建企业 YUM仓库
  14. bzoj3467: Crash和陶陶的游戏
  15. 使用java操作kudu
  16. 在VS2017(VC15)上配置opencv4.0.1环境
  17. Jquery实现日期转换为 Unix时间戳及时间戳转换日期
  18. failed to register esriAddin
  19. rollup&&cube
  20. python环境杂谈

热门文章

  1. Hbase1.1.x Java版之批量查删操作
  2. tipask 不能正常解析
  3. Java程序员面试之葵花宝典
  4. 章鱼哥出品—VB.NET DataGridView绑定数据源 "与货币管理器的位置关联的行不能设置为不可见" 问题的解决
  5. 【问底】徐汉彬:PHP7和HHVM的性能之争
  6. JavaScript 使用 php 的变量
  7. Ubuntu14.04使用DEB安装Mysql5.7
  8. 多线程中的synchronized小结
  9. CF555B 贪心
  10. iOS边练边学--图片的拉伸