• Java多态详解


    package QianFeng02;
    //多态
    public class Polymorphic {
        public static void main(String[] args){
          //  HomeCh homeCh=new HomeCh("家鸡1");//一般实例化
            Chickens homeCh=new HomeCh("家鸡1");//Chickens是父类  HomeCh是子类(多态)
            homeCh.eat();
            Chickens pheasant=new Pheasant("野鸡2");
            pheasant.eat();
            //用父类的引用指向子类的对象
    //        homeCh=pheasant;
    //        homeCh.eat();
            System.out.println("------------------------");
            eat(homeCh);
            eat(pheasant);
            Chickens jan=new Jan("尖叫鸡4");//Chickens也可以替换为Jan
            eat(jan);
        }
        //抽象:::面向抽象编程
        public static void eat(Chickens c){//Chickens是父类可以传不同类的对象(而不是只传jan对象或者homeChdu对象)
            System.out.println("鸡翅3");
            c.eat();
        }
    }
    //鸡
    // 不能被实例化
    //抽象类的非抽象子类必须对父类抽象方法进行覆盖
    abstract class Chickens{//父类一般定义为抽象类
        private String name;
        public Chickens(){}
        public Chickens(String name){
            this.name=name;
        }
        public void setName(String name){
            this.name=name;
        }
        public String getName(){
            return name;
        }
         public abstract void eat();//抽象方法必须定义为public或者abstract
    }
    //家鸡
    class HomeCh extends Chickens{
        public HomeCh(String name){
            super(name);//调用父类带参数构造方法(因为父类带参构造)
        }
        @Override
        public void eat() {
            System.out.println(getName()+"吃大米");
        }
    }
    //野鸡
    class  Pheasant extends Chickens{
        public Pheasant(String name){
            super(name);
        }
        @Override//重写抽象类父类的方法
        public void eat() {
            System.out.println(getName()+"吃虫子");
        }
    }
    //尖叫鸡
    class Jan extends Chickens{
        public Jan(String name){
            super(name);
        }
        @Override//重写抽象类父类的方法
        public void eat() {
            System.out.println(getName()+"不吃");
        }
    }
    

      

  • 相关阅读:
    经典排序算法 圈排序Cycle Sort
    javascript中的封装多态和继承
    经典排序算法 珠排序Bead Sort
    经典排序算法 希尔排序Shell sort
    经典排序算法 梳排序Comb sort
    逻辑电路 晶体管Transistor
    经典排序算法 Flash Sort
    【转】一些ASP.Net开发调试环境错误的解决方法
    【原】IIS发布ASP.Net网站提示"访问IIS元数据库失败"的解决
    【SQL精彩语句】分拆列值
  • 原文地址:https://www.cnblogs.com/july7/p/11193707.html
Copyright © 2020-2023  润新知