高级类特性----抽象类(abstract class)
抽象类(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() {}
}
最新文章
- 微信公众号开发之VS远程调试
- 修复VS,恢复初始状态
- Java Web开发之分页(ajax)
- poj2280Amphiphilic Carbon Molecules(极角排序)
- lhgdialog在打开的窗口里点击按钮关闭当前窗口
- SQL2008 强烈要求限制最大内存
- HDU3535AreYouBusy(分组背包)
- Android:常见错误提示
- C++抽象编程·运算符重载与友元函数
- 前端工程师:电信专业转前端是如何拿到阿里、腾讯offer的?
- 基于FPM制作nginx RPM包
- IIS日志分析工具-Log Parser
- 构建企业 YUM仓库
- bzoj3467: Crash和陶陶的游戏
- 使用java操作kudu
- 在VS2017(VC15)上配置opencv4.0.1环境
- Jquery实现日期转换为 Unix时间戳及时间戳转换日期
- failed to register esriAddin
- rollup&;&;cube
- python环境杂谈
热门文章
- Hbase1.1.x Java版之批量查删操作
- tipask 不能正常解析
- Java程序员面试之葵花宝典
- 章鱼哥出品—VB.NET DataGridView绑定数据源 &;quot;与货币管理器的位置关联的行不能设置为不可见&;quot; 问题的解决
- 【问底】徐汉彬:PHP7和HHVM的性能之争
- JavaScript 使用 php 的变量
- Ubuntu14.04使用DEB安装Mysql5.7
- 多线程中的synchronized小结
- CF555B 贪心
- iOS边练边学--图片的拉伸