zoukankan      html  css  js  c++  java
  • Java多态的体现之继承

    /**
     * 
     * 功能:演示多态
     */
    package com.litao;
    
    public class Demo5 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //体现多态
            /*Cat cat1 = new Cat();
            cat1.cry();
            
            Dog dog = new Dog();
            dog.cry();*/
            //自动判断右边引用是什么类型的
            //所有子类或孙子类的实例统统让一个父类来引用
    //        Animal animal = new Cat();
    //        //如果猫有cry方法,则调猫的cry,否则调Animal的cry
    //        animal.cry();
    //        
    //        animal = new Dog();
    //        animal.cry();
            
            Master master = new Master();
            master.feed(new Dog(), new Bone());
            master.feed(new Cat(), new Fish());
        }
    }
    
    //主人类
    class Master{
        //给动物喂食物
        public void feed(Animal an, Food f)
        {
            an.eat();
            f.showName();
        }
    }
    
    class Food{
        String name;
        public void showName()
        {
            
        }
    }
    
    class Fish extends Food{
        public void showName()
        {
            System.out.println("鱼");
        }
    }
    
    class Bone extends Food{
        public void showName()
        {
            System.out.println("骨头");
        }
    }
    
    
    
    //动物类Animal
    class Animal
    {
        String name;
        int age;
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
        //动物会叫
        public void cry()
        {
            System.out.println("不知道怎么叫...");
        }
        
        public void eat()
        {
            System.out.println("不知道喜欢吃什么");
        }
    }
    
    class Dog extends Animal
    {
        //猫自己叫
        public void cry()
        {
            System.out.println("旺旺叫");        
        }
        
        //动物可以吃东西
        public void eat()
        {
            System.out.println("狗喜欢吃骨头");
        }
    }
    
    class Cat extends Animal
    {
        //猫自己叫
        public void cry()
        {
            System.out.println("猫猫叫");        
        }
        
        public void eat()
        {
            System.out.println("猫喜欢吃鱼");
        }
    }
  • 相关阅读:
    django QuerySet对象转换成字典对象
    HTTP请求中三种参数类型
    django开发中遇到的问题
    win7下mysql8.0.12解压缩版安装
    Django小部件
    程序员上班有什么提高效率的技巧?
    Android应用AsyncTask处理机制详解及源码分析
    Android常用工具类
    Android Volley解析
    Android 开发有哪些新技术出现?
  • 原文地址:https://www.cnblogs.com/beautiful-code/p/5342827.html
Copyright © 2011-2022 走看看