面向对象:你定义了一个抽象类,然后你拿这个抽象类去实现一个接口,问抽象类是否需要实现接口定义的所有方法才能通过编译?

抽象类实现接口时,不必实现接口中所有的方法,只要这个类本身被声明为抽象类即可。

  • 未实现的方法会保留为抽象方法,最终需要由具体子类实现才能实例化对象。

Animal.java

package interfaceAndAbstract;

// 定义一个接口
public interface Animal {
    void eat();

    void drink();
}

AbstractAnimal.java

package interfaceAndAbstract;

public abstract class AbstractAnimal implements Animal {
    @Override
    public void eat() {
        System.out.println("This animal is eating");
    }
//    drink仍然是抽象的,需要子类实现。
}

子类继承Animal.java

package interfaceAndAbstract;

public class Dog extends AbstractAnimal {

    @Override
    public void drink() {
        System.out.println("drink");
    }
}
posted @ 2025-04-03 15:12  kuki'  阅读(9)  评论(0)    收藏  举报