有时候,基类并不一与具体的事物相联系,而是只表达一种抽象的概念,用以为它的派生类提供一个公共界面。为此,Java引入了抽象类的概念。
Java中不采用纯虚数的概念,而是通过显式地声明抽象类并使用abstract修饰符的办法。
一个抽象类要注意以下几点:
(1)抽象类中能作为其他类的基类,它不能直接被实例化,而且对抽象类不能用new操作符。抽象类如果含有抽象的变量或值,则他们要么是null类型,要么包含对非抽象类的实例的引用。
(2)抽象类允许包含抽象成员,但这不是必须的(可以允许一个抽象类中没有任何抽象成员)。
(3)抽象类不能同时又被final修饰,如果一个类同时被final和abstract修饰编译时会报错。
(4)如果一个非抽象从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员。
(5)抽象类可以被抽象类继承,并且可以不覆盖抽象方法,其结果还是抽象类。
(6)抽象类允许被声明。
(7)非抽象类继承了抽象类而没有覆盖抽象而来的抽象方法,编译时会报错。
——————摘自《Java程序员面试宝典》
Java抽象类
最新推荐文章于 2024-12-07 22:41:56 发布