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 中的多态,一次讲个够之接口实现关系中的多态的主要内容,如果未能解决你的问题,请参考以下文章
start from the beginning-JAVA(接口多态)
Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)