Java 中的多态,一次讲个够之接口实现关系中的多态

Posted qianjinyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中的多态,一次讲个够之接口实现关系中的多态相关的知识,希望对你有一定的参考价值。

上文还没有写完,这一篇继续

https://www.cnblogs.com/qianjinyan/p/10824576.html

 

接口实现关系,和继承区别不是很大,

接口和继承从定义上,无非一个对象能实现两个接口,解决了子类只能单继承的问题

 

先来两个接口,一个是动物类,一个是哺乳动物类,先不要管这两个类的关系,这就是没有相互关系的两个接口

public interface Animal {

     void eat();
     void work();
}
public interface Mammal {
}
public class Cat implements Animal,Mammal{

    public void eat() {
        System.out.println("===我是猫咪我要吃鱼");
    }
    public void work() {
        System.out.println("===我是猫咪我负责抓老鼠");
    }


    public int numberOfLegs(){
        return 4;
    }
}
public class Dog implements Animal,Mammal {

    @Override
    public void eat() {
        System.out.println("====我是小狗我要吃骨头");
    }
    @Override
    public void work() {
        System.out.println("====我是小狗我负责看家");
    }

    public void travel(){
        System.out.println("Dog travels");
    }

    public int numberOfLegs(){
        return 4;
    }

}
public class Chicken implements Animal {

    public void eat() {
        System.out.println("===我是鸡仔我要吃粗粮");
    }
    public void work() {
        System.out.println("===我是鸡仔我负责下蛋");
    }


    public int numberOfLegs(){
        return 2;
    }
}

测试类:

public class TestM {

    public static void main(String args[]){
        Cat m = new Cat();
        m.eat();
        m.work();
        int number =m.numberOfLegs();
        System.out.println(number);

        Animal animal = new Cat();
        animal.eat();
        animal.work();
        int animalnumber =((Cat)animal).numberOfLegs();
        System.out.println(number);


        Mammal mammal = new Cat();
        ((Cat)mammal).eat();
        ((Cat)mammal).work();
        int mammalnumber =((Cat)mammal).numberOfLegs();
        System.out.println(number);

        Animal ch = new Chicken();
        ch.eat();
        ch.work();
        int ch_legs =((Chicken)ch).numberOfLegs();
        System.out.println(ch_legs);


    }
}

技术图片

 

以上是关于Java 中的多态,一次讲个够之接口实现关系中的多态的主要内容,如果未能解决你的问题,请参考以下文章

JAVA零基础小白学习教程之day08_接口&多态

JAVA中的多态概念

Java中的多态

start from the beginning-JAVA(接口多态)

Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第3节 接口_14_接口之间的多继承