为什么要用抽象类
来源:互联网 发布:王牌特工2 知乎 编辑:程序博客网 时间:2024/05/29 08:15
抽象是个什么概念?
比如电脑就是一个抽象的概念,可以理解为一个抽象类。因为电脑可以分为笔记本电脑,台式机,掌上电脑等等。
使用抽象类可以防止出现一些错误:
假如忘了复写Hp打印机的print函数,编译不会报错,这时print就不会被调用,这就会导致功能型错误。
class Printer{ void open(){ System.out.println("Open"); } void close(){ System.out.println("Close"); } void print(){//没有定义为抽象函数 }}子类没有复写:
//该打印机为喷墨打印机class HpPrinter extends Printer{}另一个子类:
//该打印机为针式打印机class CannoPrinter extends Printer{ void print(){//复写 System.out.println("使用针式打印机进行打印"); } void close(){ this.clean(); super.close(); } void clean(){ System.out.println("clean"); }}
class Test{ public static void main(String args[]){ Printer printer1 = new HpPrinter(); printer1.open(); printer1.print(); printer1.close(); Printer printer2 = new CannoPrinter(); printer2.open(); printer2.print(); printer2.close(); }}输出结果:
OpenCloseOpen使用针式打印机进行打印cleanClose可以发现,Hp打印机的print没有被调用到。但是编译没有报错。。。
为了提到警示作用,这时抽象类的作用来了。将Printer定义为抽象类。如果没有复写print方法,编译其就会帮助提示报错。。
abstract class Printer{ void open(){ System.out.println("Open"); } void close(){ System.out.println("Close"); }/* void print(){ }*/ abstract void print();//定义为抽象函数}如果和上面一样没有实现复写,编译会错误:
HpPrinter.java:2: HpPrinter 不是抽象的,并且未覆盖 Printer 中的抽象方法 print()class HpPrinter extends Printer{^1 错误总结:
如果类中有个函数需要子类进行复写,那么这个函数写为抽象的是最好的。
- 为什么要用抽象类
- 为什么要用抽象类
- 为什么用抽象类
- 为什么要用抽象方法
- 为什么要使用抽象类
- java24为什么用抽象类
- Java中为什么要用抽象类来实现接口
- 抽象类和接口的区别、为什么用抽象类。
- 抽象类和接口的区别、为什么用抽象类。
- 抽象类和接口的区别、为什么用抽象类。
- 抽象类和接口的区别、为什么用抽象类
- 为什么C++要定义抽象基类
- Java中为什么要使用抽象类
- 为什么使用抽象类?
- Java基础-为什么要抽象?
- php为什么要引入接口类、抽象类
- 为什么要在定义抽象类时使用abstract关键字
- 为什么要在定义抽象类时使用abstract关键字
- Mybatis调用Oracle中的存储过程和function
- C# 操作 MySQL 数据库(连接,查询,插入)
- Sybase触发器
- [easy_install]常用安装和卸载第三方库方法
- Hadoop中的RPC
- 为什么要用抽象类
- libvirt与qemu通信
- C# 操作 SQL Server(查询)
- 论我为什么想去实习--研究僧之反思
- 私人数组
- GridView1_RowUpdating取不到新值
- Tizen 开发 - UI:Scene Management
- poj_1201Intervals
- javaweb框架--自定义标签与freemaker结合