面向对象:你定义了一个抽象类,然后你拿这个抽象类去实现一个接口,问抽象类是否需要实现接口定义的所有方法才能通过编译?
抽象类实现接口时,不必实现接口中所有的方法,只要这个类本身被声明为抽象类即可。
- 未实现的方法会保留为抽象方法,最终需要由具体子类实现才能实例化对象。
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");
}
}

浙公网安备 33010602011771号