关于继承 抽象类多态 接口基础运用的一个简单例子

关于继承 抽象类多态 接口运用的一个简单例子

  • Animal抽象类定义抽象方法
  • plus接口定义特殊属性的引用
  • 通过实现接口来达到不同动物的专属特殊属性
public abstract class Animal implements Plus {
    public abstract void eat();

    public abstract void sleep();

    public abstract void work();
}

public class Cat extends Animal implements Plus {
    @Override
    public void eat() {
        System.out.print("属性:");
    }

    @Override
    public void sleep() {
        System.out.print("属性:");
    }

    @Override
    public void work() {
        System.out.print("属性:");
    }
}
public class Dog extends Animal implements Plus {
    @Override
    public void eat() {
        System.out.print("属性:");
    }

    @Override
    public void sleep() {
        System.out.print("属性:");
    }

    @Override
    public void work() {
        System.out.print("属性:");
    }
}
public interface Plus {
    default void game(){
        System.out.println("特殊属性:一天天的学会了打游戏");
    }
    default void saJiao(){
        System.out.println("特殊属性:做错了撒娇");
    }
    default void chaiJia(){
        System.out.println("特殊属性:专属拆家技能MAX");
    }
    default void saHuan(){
        System.out.println("特殊属性:打不过的狗");
    }
}
public class liHuaMao extends Cat{
    public void name() {

        System.out.println("狸花猫");
    }
    @Override
    public void eat() {
        super.eat();
        System.out.println("渴望吃鲸鱼");
    }

    @Override
    public void sleep() {
        super.sleep();
        System.out.println("熬夜");
    }

    @Override
    public void work() {
        super.work();
        System.out.println("无所事事");
    }
}
public class buErMao extends Cat{

    public void name() {

        System.out.println("布偶猫");
    }
    @Override

    public void eat() {
        super.eat();
        System.out.println("猫主子吃贵的");
    }

    @Override
    public void sleep() {
        super.sleep();
        System.out.println("席梦思");
    }

    @Override
    public void work() {
        super.work();
        System.out.println("负责美貌");
    }
}
public class erHa extends Dog implements Plus{
    public void name() {

        System.out.println("二哈");
    }
    @Override
    public void eat() {
        super.eat();
        System.out.println("能吃的不能吃的都吃");
    }

    @Override
    public void sleep() {
        super.sleep();
        System.out.println("累了就睡");
    }

    @Override
    public void work() {
        super.work();
        System.out.println("消耗精力");
    }
}
public class zangAo extends Dog implements Plus {
    public void name() {

        System.out.println("藏獒");
    }

    @Override
    public void eat() {
        super.eat();
        System.out.println("吃生肉");
    }

    @Override
    public void sleep() {
        super.sleep();
        System.out.println("正常睡 随时醒");
    }

    @Override
    public void work() {
        super.work();
        System.out.println("战斗力爆棚");
    }
}
public class Testx {
    public static void main(String[] args) {
        System.out.println("========================");
        Animal a=new liHuaMao();
        ((liHuaMao)a).name();
        a.eat();
        a.sleep();
        a.work();
        ((Plus)a).game();
        System.out.println("========================");
        Animal a1=new buErMao();
        ((buErMao)a1).name();
        a1.eat();
        a1.sleep();
        a1.work();
        ((Plus)a1).saJiao();
        System.out.println("========================");
        Animal a2=new erHa();
        ((erHa)a2).name();
        a2.eat();
        a2.sleep();
        a2.work();
        ((Plus)a2).chaiJia();
        System.out.println("========================");
        Animal a3=new zangAo();
        ((zangAo)a3).name();
        a3.eat();
        a3.sleep();
        a3.work();
        ((Plus)a3).saHuan();
        System.out.println("========================");
    }
}

运行结果:
========================
狸花猫
属性:渴望吃鲸鱼
属性:熬夜
属性:无所事事
特殊属性:一天天的学会了打游戏
========================
布偶猫
属性:猫主子吃贵的
属性:席梦思
属性:负责美貌
特殊属性:做错了撒娇
========================
二哈
属性:能吃的不能吃的都吃
属性:累了就睡
属性:消耗精力
特殊属性:专属拆家技能MAX
========================
藏獒
属性:吃生肉
属性:正常睡 随时醒
属性:战斗力爆棚
特殊属性:打不过的狗
========================

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/cx9977/article/details/107536240