java中的抽象类
抽象类的概念
有抽象方法的类就是抽象类,用abstract修饰
抽象方法的概念
只有方法声明,没有方法体的方法。用abstract修饰
抽象方法的由来
当需要定义一个方法,却不明确方法的具体实现时,可以将方法定义为avstract,具体实现延迟到子类
抽象类的特点
修饰符:必须用abstract关键字修饰
格式:修饰符 abstract class 类名{} (pubilc avostract calss animal{})
修饰符 abstract 返回类型 方法名{} (public avstract void eat();)
抽象类不能被实例化,只能创建子类对象
抽象类怎么实例化呢?
可以同过创建其子类对象来完成初始化操作
抽象类子类的两个选择
-
- 如果是普通类,则需要重写父类的所有抽象方法
- 如果是抽象类,则不用
抽象类成员的特点
- 成员变量
可以有普通的成员变量(可以被修改)
也可以有成员常量(final)(不可被修改)
- 成员方法
可以有普通方法,也可以有抽象方法
抽象类不一定有抽象方法,有抽象方法的类一定是抽象类(或接口)
- 构造方法
像普通类一样有构造方法,且可以重载
代码演示:
首先定义一个抽象类
package dome3; //抽象类 public abstract class Aaimal { //抽象方法 public abstract void eat(); }
创建一个类继承自这个抽象类
package dome3; public class Dog extends Aaimal{ //普通类继承抽象类,必须要重写抽象类中的方法 需要注意的是,抽象类继承抽象类,则不需要重写 @Override public void eat() { System.out.println("啃骨头"); } }
测试类
package dome3; public class Test { public static void main(String[] args) { Aaimal an = new Dog(); //通过多态创建类对象 an.eat(); //调用类中的方法 } }