1. abstract类

我们把用关键字abstract修饰的类称作abstract类,即抽象类,例如:

abstract class A {
    …
}

2. abstract方法

我们把用关键字abstract修饰的方法称作abstract方法,即抽象方法,例如:

abstract int max(int x,int y);


注意:

1)对于abstract方法,只允许声明,不允许实现,即没有方法体,而且不允许使用final和abstract同时修饰一个方法或类,也不允许使用static修饰abstract方法,即abstract方法必须是实例方法。

2)abstract类中可以有abstract方法,也可以有非abstract方法,而非abstract类中不可以有abstract方法。


例如:A类中的max()方法是abstract方法,min()方法是普通方法(非abstract方法)。

abstract class A {
    abstract int max(int x,int y);
    int min(int x,int y) {
        return x<y?x:y;
    }
}


对于abstract类,不能使用new运算符创建该类的对象,如果一个非abstract类是某个abstract类的子类,那么它必须重写父类的抽象方法,并给出方法体,这也就是不允许使用final和abstract同时修饰一个方法或类的原因。


我们可以使用abstract类声明对象,尽管不能使用new运算符创建该对象,但是该对象可以成为其子类对象的上转型对象,这样该对象就可以调用子类重写的方法。


注意:abstract类可以没有abstract方法,如果一个abstract类是abstract类的子类,那么它既可以重写父类的abstract方法,也可以继承父类的abstract方法。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)