10、从零开始学习JAVA--抽象类和抽象函数

来源:互联网 发布:最好用的编程软件 编辑:程序博客网 时间:2024/05/17 00:13

使用关键字:abstract

1、抽象函数

只有函数的定义,没有函数体的特殊函数被称为抽象函数,如:

abstract void fun();

抽象函数所在类必须是抽象类。

2、抽象类

使用abstract关键字来定义的类,如:

abstract class Person {...};

2.1、抽象类不能够生成对象,即不能使用new来调用构造函数。

2.2、如果一个类当中包含有抽象函数,那么这个类必须声明为抽象类。

2.3、如果一个类当中没有抽象函数,那么这个类也可以声明成抽象类。

抽象类天生是用来当“爹”的,它本身不能生成对象,但通过继承,在子类中可以对它的抽象函数进行复写,复写时不要再加abstract关键字。

抽象类是有构造函数的(只不过不能被new),但可以在子类中通过super关键字来调用。

3、抽象类的最基本应用

如果一个类,它的某一函数必须由子类实现,而又无法在父类中写出一个通用的函数,就可以定义成抽象函数和类。

这样的话,如果子类忘记重写抽象函数,JVM就会报错,达到“如果一段代码,它的语意错误,那么它的语法也应该错误”的目的,参考打印机的例子。

abstract class Printer{void open(){System.out.println("Open");}void close(){System.out.println("Close");}abstract void print();}
class HpPrinter extends Printer{void print(){System.out.println("使用HP打印机进行打印");}}
class CanonPrinter extends Printer{void print(){System.out.println("使用Canon打印机进行打印");}}
class Test{public static void main(String[] args){HpPrinter P1 = new HpPrinter();P1.open();P1.print();P1.close();CanonPrinter P2 = new CanonPrinter();P2.open();P2.print();P2.close();}}

原创粉丝点击