zoukankan      html  css  js  c++  java
  • 关于Java多态

    什么是多态

    同一个实现接口,使用不同的实例而执行不同的操作

    子类转换成父类的规则:

    *将一个父类的引用指向一个子类对象时,称为上转型,自动进行类型转换

    *此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

    *此时通过父类引用变量无法调用子类特有的方法

    /**
     * 宠物类,狗狗和企鹅的父类
     */
    package cn.yy.test01;
    
    public abstract class Pet {
        private String name;
        private int health;
        private int love;
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getHealth() {
            return health;
        }
        public void setHealth(int health) {
            this.health = health;
        }
        public int getLove() {
            return love;
        }
        public void setLove(int love) {
            this.love = love;
        }
        
        public abstract void eat();
    }
    package cn.yy.test01;
    /**
     * 
     * 狗狗类
     * @author CKW
     *
     */
    public class Dog extends Pet {
        private String strain;//品种
        
        
        public String getStrain() {
            return strain;
        }
    
    
        public void setStrain(String strain) {
            this.strain = strain;
        }
    
    
        public Dog(String name,String strain) {
            super();
            this.strain = strain;
        }
        public Dog() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * 实现狗狗吃饭方法
         * 
         */
        @Override
        public void eat() {
    
        }
    
    }
    package cn.yy.test01;
    /**
     * 企鹅类
     * @author CKW
     *
     */
    public class Penguin extends Pet {
        private String sex;//性别
        
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        /**
         * 实现企鹅吃饭方法
         */
        @Override
        public void eat() {
            // TODO Auto-generated method stub
    
        }
    
    }
    package cn.yy.test01;
    /**
     * 主人类
     * @author CKW
     *
     */
    public class Master {
        private String name="";//主人名字
        private int money=0;//元宝数
        
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getMoney() {
            return money;
        }
    
        public void setMoney(int money) {
            this.money = money;
        }
    
        public Master (String name,int money){
            this.name=name;
            this.money=money;
        }
        
        /**
         * 主人给宠物喂食
         */
        public void feed(Pet pet){
            pet.eat();
        }
        
        //主人给Dog喂食
        public void feed(Dog dog){
            dog.eat();
        }
        
        //主人给Penguin喂食
        public void feed(Penguin pgn){
            pgn.eat();
        }
                
    }
    package cn.yy.test01;
    
    
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Dog dog=new Dog("偶偶","雪瑞纳");
            //Penguin penguin=new Penguin();
            Master master=new Master("王先生", 100);
            master.feed( dog);//主人给狗狗喂食
            
        }
    
    }
  • 相关阅读:
    NFS 规格严格
    Spring 规格严格
    如何做好软件功能测试 规格严格
    51CTO上不错的文章 规格严格
    一个好网站 规格严格
    系统小贴士 规格严格
    编译Zabbix 规格严格
    JS学习 规格严格
    杂项 规格严格
    MySQL 自增ID 规格严格
  • 原文地址:https://www.cnblogs.com/ckwblogs/p/5964919.html
Copyright © 2011-2022 走看看