抽象类(abstract)特点 (1)抽象类和抽象方法必须使用abstract关键字修饰 abstract class 类名 {}; public abstract void 方法名(); (2)抽象类不一定具有抽象方法,有抽象方法的类一定是抽象类或者接口 (3)抽象类不能实例化,如何进行实例化: 按照多态方式,由具体的子类进行实例化 (4)抽象类的子类 要么是抽象类 要么重写抽象类中的所有抽象方法
抽象类的成员特点 (1)成员变量,既可以是变量,也可以是常量,abstract不刻意修饰成员变量 (2)构造方法用于子类访问父类数据的初始化 (3)成员方法既可以是抽象的,也可以是非抽象的抽象类的成员方法特性 (1)抽象方法,强制要求子类做的事情 (2)非抽象方法,子类继承的事情,提高代码复用性
一个抽象类如果没有抽象方法,可以定义为抽象方法,这么做只有一个目的,那就是不让其他类创建本类对象,交给子类完成
abstract不能和哪些关键字共存 (1)abstract和static 被abstract修饰的方法没有方法体 被static修饰的方法可以使用类名.调用,但是类名.调用抽象方法没有意义 (2)abstract和final 被abstract修饰的方法强制子类重写 被final修饰的不让子类重写 (3)abstract和PRivate 被abstract修饰的方法是为了让子类看到并强制重写 被private修饰不让子类访问
class Abstract { public static void main(String[] args) { }}abstract class AnimalA{ public abstract void eat(){ System.out.println("猫吃鱼"); }}class CatA extends AnimalA{ public void eat(){ System.out.println("猫吃鱼"); }}
新闻热点
疑难解答