作用
常用于 Java 多态的实现。
定义
用abstract
关键字来标记一个抽象类:
abstract class Abstract {
}
对于成员函数,可以用abstract
关键字来将其定义为抽象函数:
abstract class Abstract {
public abstract void abstractMethod();
}
可以为抽象类添加普通成员函数:
abstract class Abstract {
public void normalMethod() {
println("Abstract.normalFunction");
}
public abstract void abstractMethod();
}
- 注意:JDK不会允许用户创建一个抽象类的对象,所以在创建对象前,必须继承抽象类并重载其所有抽象方法!
使用
可以用匿名类来直接使用一个抽象类。但是需要在匿名类中重载所有的抽象函数:
Abstract a = new Abstract() {
@Override
public void abstractMethod() {
println("Abstract.abstractMethod()");
}
};
也可以先继承这个抽象类,然后重写其所有抽象函数:
class SonOfAbstract extends Abstract {
@Override
public void abstractMethod() {
println("SonOfAbstract.abstractMethod()");
}
}
// 至此,可以像使用一个正常类一样去使用SonOfAbstract
- 注意:如果没有在继承时重载所有抽象函数,那么继承所得的类依然是抽象类!
发表评论