美文网首页
Java中的抽象类

Java中的抽象类

作者: 夜希辰 | 来源:发表于2021-05-06 22:50 被阅读0次

在java中,一个没有方法体的的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类

1、抽象类的特点

抽象类和抽象方法必须使用abstract关键字修饰
public abstract class 类名{};
抽象类中不一定有抽象方法,有抽象方法一定是抽象类

  • 抽象类不能实例化
    抽象类如何实例化?参照多态的方式,通过子类对象实例化,这叫抽象类多态
  • 抽象类的子类
    要么重写抽象类中的是所有抽象方法
    要么是抽象类(就可以不重写抽象方法)
2、抽象类的成员特点

成员变量、构造方法、成员方法

  • 成员变量:可以是变量、也可以是常量
  • 构造方法:有构造方法,但是不能实例化
    那么构造方法的作用是什么呢?用于子类访问父类数据的初始化
  • 成员方法:
    可以有抽象方法限定子类必须完成某些动作
    也可以有非抽象方法:提高代码的复用性
//抽象类
public abstract class Animal {
    private int age = 20;
    private final String city = "北京";//常量

    public Animal(){
        System.out.println("Animal abstract类");
    }//构造方法
    public Animal(int age){
        this.age = age;
    }

    public void show(){
        age = 40;
        System.out.println(age);
        System.out.println(city);
    }

    public abstract void eat();//抽象方法
}
//继承自抽象类,必须重写抽象类中的抽象方法
public class Cat extends Animal {

    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
//测试类
public class AnimalDemo {
    public static void main(String[] args) {
        //有父类引用指向子类对象
        Animal a = new Cat();//向上转型
        System.out.println("------------------");
        a.eat();
        a.show();
    }
}

相关文章

网友评论

      本文标题:Java中的抽象类

      本文链接:https://www.haomeiwen.com/subject/vjrjdltx.html