抽象方法
只有声明,但没有具体内容的方法
抽象方法不能直接被调用,需要重写
声明
与普通方法声明相同,加abstract关键字
abstract 作用域 返回类型 方法名();
抽象类
包含抽象方法的类就是抽象类
抽象类不能被直接使用,不能被实例化。
作用
用于告诉子类可以执行哪些操作,但没有规定具体的操作内容。
抽象类必须被继承,在子类中重写抽象方法。
(面向抽象编程)
声明
abstract class 类名{
…
扫描二维码关注公众号,回复:
9967228 查看本文章
}
继承
抽象类可以继承自抽象类
接口
一种特殊的类,只包含全局常量和public的抽象方法。
作用
接口可多继承(类只能单继承)
确定一个类的功能,面向接口编程
声明
interface 接口名{
全局常量
抽象方法
}
因为接口的所有方法都是public的抽象方法,因此可省略public abstract关键字
继承
- 接口可继承接口,不可继承抽象类和普通类
- 继承接口需使用implements关键字,并可继承多个接口
-
普通类继承接口时,必须重写接口的所有方法
e.g.
//声明接口A,包含两个抽象方法:print、area
interface A{
void print();
float area(double r);
}
//声明接口B,包含抽象方法len
interface B{
float len(double w, double h}
}
//创建普通类,并继承自接口A和B
class Test implements A,B{
//必须重写接口的所有方法
@Override
void print(){
…
}
@Override
float area(double r){
return 3.14*r*r;
}
float len(double w, double h){
return w*h*2;
}
}