简单介绍 abstract 以及如何使用

简单看看下面的代码

public  class Animal {
    public  void shout(){
        System.out.println("shout");
    }
    public void run(){
        System.out.println("run...");
    }
}
public class Dog extends Animal{
    @Override
    public void shout() {
        System.out.println("wang wang ");
    }
}
public class Cat extends Animal{
    @Override
    public void shout() {
        System.out.println("miao miao ");
    }
}

我们发现子类重写了父类的方法,那么父类方法的具体实现子类就没有怎么关注,所以我们可以先抽象出来

public abstract class Animal {
    public abstract void shout();
    public void run(){
        System.out.println("run...");
    }
}


public class Cat extends Animal{
    @Override
    public void shout() {
        System.out.println("miao miao ");
    }
}
public abstract class Animal {
    public abstract void shout();
}

这就是抽象类,父类的具体实现子类并不是很关注,我们就可以抽出来。

注意抽象类是不可以直接实例化的,可以通过子类间接实例化
含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法。

你可能感兴趣的:(java基础,抽象类,java)