抽象类
概述: 父类中的方法,被他的子类们重写,而子类的各自实现有不一样,那么父类的方法声明和方法体,就只有声明还有意义,而方法体内容没有存在的意义。我们把这种没有方法体内容的方法称为抽象方法,java语言规定,如果一个类包含了抽象的方法,那么这个类就必须是一个抽象类。
定义
抽象方法: 没有方法体的方法
抽象类: 包含抽象方法的类
abstract关键字的使用格式
抽象方法:使用abstract关键字修饰成员方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体内容。
定义格式:
修饰符 abstract 返回值类型 voidrun();
示例:
public abstract void run();
public abstract void eat();
public abstract void jump();
抽象类:如果一个类包含了抽象方法,那么该类就是一个抽象类
定义格式:
修饰符 abstract class Animal{}
public abstract class Animal{
public abstract void run();
public abstract void eat();
}
使用抽象类和抽象方法的注意事项
-
不能直接创建new抽象类对象,如果创建对象,编译无法通过,只能创建其非抽象子类对象
-
必须有一个子类来继承抽象类,且必须重写父类当中的所有抽象方法,否则编译无法通过,除非子类也是抽象类
-
方法重写是子类对父类的抽闲该方法完全实现,我们将这种重写操作,也叫作实现方法。
-
抽象类不一定包含抽象方法,但是有抽象方法的类一定是抽象类
-
抽象类中可以有构造方法,供子类创建对象时,初始化父类成员使用