Java:抽象类

抽象类

1.抽象类概述:在Java中,一个没有方法体( { }这个就是方法体)的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象。

无方法体–>抽象方法
有抽象方法- ->抽象类

2.一个方法,要么有方法体要么就定义成抽象的 。抽象方法只能定义在抽象类内,如果类不为抽象类就要修改为抽象类,抽象类是可以有非抽象方法的,抽象类也可以没有抽象方法(但这个没什么意义)。

3.抽象类不能直接创建对象,参照多态的方法创建对象:
定义一个子类,继承抽象类,在子类中对抽象类的抽象方法重写就行了。
抽象类名 对象名=new 子类名()
Animals a=new Cat();
Animals是抽象类,Cat是子类
继承抽象类的子类要对抽象类的所以抽象方法进行重写

但如果你不想重写抽象方法,继承的子类也得是个抽象类,这样后面对这个抽象子类进行继承的时候再对子类的子类进行抽象方法的重写就行。

4.方法调用
在多态那边我们说到编译看左边,执行看右边,现在我们针对具体案例进行说明:
我们创建了一个Animals类型的对象,调用它的eat方法,eat方法虽然是一个抽象方法,没有方法体,但是在子类中重写了,编译看左边,Animals有eat这个方法,执行看右边,子类对eat方法重写了。
调用sleep方法,编译看左边,执行看右边,虽然子类中没有sleep方法,但sleep方法是非抽象类的,被子类继承,所以正常执行。

public class Demo {
    public static void main(String[] args) {
       Animals cat=new Cat();
       cat.eat();
       cat.sleep();
    }
}
public class Cat extends Animals{
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
public abstract class Animals {
    public abstract void eat();
    public void sleep(){
        System.out.println("睡觉");
    }
}
猫吃鱼
睡觉

在这里插入图片描述
关于抽象类
在这里插入图片描述

posted on 2022-01-21 21:34  不依法度  阅读(7)  评论(0编辑  收藏  举报

导航