抽象类的继承
抽象类的定义(可以构造方法)
抽象类中方法的定义格式为:
public abstract void eat();
继承抽象类,抽象方法必须要重写!
public class Cat extends Animal {
public Cat() {
System.out.println("子类构造方法");
}
@Override
public void eat()
{
System.out.println("猫吃饭");
}
}
实现方法和之前的继承一样,效果也一样
进阶
定义一个抽象父类Animal
public abstract class Animal {
Animal(){System.out.println("父亲构造方法animal");}
public abstract void sleep();
public abstract void eat();
}
定义下一个类继承它Dog
public abstract class Dog extends Animal {
Dog(){System.out.println("父亲构造方法!dog");}
@Override
public void eat()
{
System.out.println("狗吃骨头");
}
}
此类为抽象类应为没有覆盖重写所有的代码,主要接上一讲继承中的提示。
//覆盖重写要实现全部抽象类的方法,否则加abstract变为抽象类
最后定义两个子类继承dog类,并覆盖重写animal中未覆盖重写的方法
1/金毛
public class GoldenDog extends Dog{
GoldenDog(){System.out.println("子构造方法!金毛");}
@Override
public void sleep() {
System.out.println("金毛睡觉,呼呼呼");
}}
2/泰迪
public class Taidi extends Dog {
@Override
public void sleep() {
System.out.println("泰迪睡觉:嗨嗨嗨");
}
}
实现效果类及效果
public class DemoMain {
public static void main(String[] args) {
GoldenDog goldenDog = new GoldenDog();
goldenDog.eat();
goldenDog.sleep();
// goldenDog.eat();
System.out.println("================");
Taidi taidi = new Taidi();
taidi.eat();
taidi.sleep();
}
}
构造方法参见上一讲的提示!定义子类对象,构造方法往上找!