zoukankan      html  css  js  c++  java
  • 多态

    多态:对象执行某个行为方法式表现出不同的形态。
    多态分两种:静态多态(编译多态)通过方法重载来实现,动态多态(运行多态),通过重写来实现。

    动态多态一般通过父类的引用,指向子类的实例来实现。实例调用的时候,调的是子类的方法。

    练习:

    public class Che {        //父类Che
        protected String cheming;
        private String leixing;
        private String dangwei;
        
        public Che(String cheming){        //重载  参数符合会运行
            this.cheming = cheming;
        }
        public Che(String cheming,String leixing,String dangwei){  //重载  参数符合会运行
            this.cheming = cheming;
            this.leixing = leixing;
            this.dangwei = dangwei;
            
        }
        public void shache(){
            System.out.println(cheming+"z");
        }
        public void jiasu(){
            System.out.println(cheming+"s");
        }
        public void qidong(){
            System.out.println(cheming+"h");
        }
    }
    public class Byd extends Che {       //子类继承Che
        public Byd(String cheming){
            super(cheming);
        }
        public Byd(String cheming,String leixing,String dangwei){
            super(cheming,leixing,leixing);        
        }
        public void shache(){
            System.out.println(cheming+"正在刹车"+"1");
        }
        public void jiasu(){
            System.out.println(cheming+"正在加速"+"1");
        }
        public void qidong(){
            System.out.println(cheming+"正在启动"+"1");
        }
        
    }
    public class Jipu extends Che {      //子类也是继承Che
        public Jipu(String cheming) {  
            super(cheming);
        }
        public Jipu(String cheming,String leixing,String dangwei){  
            super(cheming,leixing,dangwei);
        }
        
        public void qidong(){
            System.out.println(cheming+"正在启动"+"2");
        }
        
        public void jiasu(){
            System.out.println(cheming+"加速"+"2");
        }
        
        public void shache(){
            System.out.println(cheming+"正在刹车"+"2");
        }
    }
    public class Siji {               //定义一个类Siji方法来调用父类方法
        public void jiashi(Che c){   //引用父类Che实例化子类
            c.qidong();              
            c.jiasu();
            c.shache();    
        }
    }
        public static void main(String[] args) {
            Che b = new Byd("比亚迪");    //实参
            Che j = new Jipu("吉普");    //实参
            Siji s = new Siji();
    
            s.jiashi(b);     //再用jiashi()方法调用Byd
    s.jiashi(j); //再用jiashi()方法调用Jipu 实现运行多态(动态多态) } }
  • 相关阅读:
    gsm at 指令
    wm8976 codec
    【Gym 100971J】Robots at Warehouse
    【XDU1144】合并模板
    腾讯云CentOS7安装LNMP+wordpress
    【USACO1.1】Broken Necklace
    【校赛小分队之我们有个女生】训练赛6
    【计导作业】——商品记录
    C 文件读写2
    C 文件读写1
  • 原文地址:https://www.cnblogs.com/hq233/p/6227412.html
Copyright © 2011-2022 走看看