public class AbstractTest {
public static void main(String[] args) {
Shepherd shepherd = new Shepherd();
shepherd.eat();
shepherd.run();
Chihuahua chihuahua = new Chihuahua();
chihuahua.eat();
chihuahua.run();
}
}
abstract class Animal{
public abstract void eat();
}
abstract class LovelyDogs extends Animal{
public abstract void run();
public void eat() {
}
}
class Chihuahua extends LovelyDogs{
public void run(){
System.out.println("Chihuahua is lovely, running!");
}
public void eat(){
System.out.println("Chihuahua eats little!");
}
}
class Shepherd extends LovelyDogs{
public void run(){
System.out.println("Shepherd runs fast!");
}
public void eat(){
System.out.println("Shepherd eats much!");
}
}
注意:当一个非抽象类继承自一个抽象类时,必须实现所继承类的所有抽象方法,抽象类的第一个非抽象子类必须实现所有的抽象方法。abstract和final、private不能同时使用,它们与abstract意义相违背。