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 实现运行多态(动态多态) } }
  • 相关阅读:
    css文本在标签<text>内平均分布
    ES6实现去重,排序,加升序
    uni-app项目打包成小程序
    uni-app项目( uniapp滚动监听元素)
    运行vue项目:Module build failed: Error: Cannot find module 'node-sass'报错问题
    笨方法实现数量的输入与加一减一 、以及对边界值的判断禁用
    基于nuxt的前端商城pc端项目(bug记录)
    基于nuxt的商城项目pc端项目记录
    Vue学习笔记整理-长期更新
    程序员,不要创业!
  • 原文地址:https://www.cnblogs.com/hq233/p/6227412.html
Copyright © 2011-2022 走看看