zoukankan      html  css  js  c++  java
  • Java 中的多态,一次讲个够之接口实现关系中的多态

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

    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);
    
    
        }
    }

  • 相关阅读:
    Autofac小例子
    Spring自带mock测试Controller
    [转载]转Java 几个memcached 连接客户端对比 选择
    danga的MemcachedClient的几个缺陷
    linux查看memcached状态
    Linux下配置安装PHP环境(Apache2)
    使用memcache.php监控memcached
    memcached运行情况监测
    memcached监控的几种方法(nagios等)
    xmemcached使用的几点优化建议
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/10825104.html
Copyright © 2011-2022 走看看