• 多态


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

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

    练习:

    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 实现运行多态(动态多态) } }
  • 相关阅读:
    开源框架---tensorflow c++ API 一个卡了很久的问题
    开源框架---tensorflow c++ API 运行第一个“手写字的例子”
    版本问题---Bazel与tensorflow的对应关系
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/hq233/p/6227412.html
Copyright © 2020-2023  润新知