第8章 多态

作者: 胡笠 | 来源:发表于2019-04-10 01:42 被阅读0次

    8.2

    **总结 private的方法可以看作是final类型的,这样在子类中是无法被重写的,子类中实际上是可以看作为一个新的方法
    **
    练习10,page155,创建一个包含两个方法的基类,咋i 第一个方法中可以调用第二个方法。然后产生一个继承自该基类的子类,且覆盖基类汇总的第二个方法,为子类创建一个对象,将它向上转型为基类,并调用第一个方法

    父类:ride中调用didi
    package main.chapter8;
    
    /**
     * base class
     *
     * @author
     * @create 2019-04-10 上午12:16
     **/
    public class Cycle {
    
        public void ride(){
            System.out.println("cycle ride");
            didi();
        }
    
        public void sayHi(){
            System.out.println("this is cycle");
        }
    
        public void didi(){
            System.out.println("cycle didi");
        }
    }
    

    子类,重写方法didi

    package main.chapter8;
    
    /**
     * child class
     *
     * @author
     * @create 2019-04-10 上午12:18
     **/
    public class Unicycle extends Cycle {
    
        
        @Override
        public void sayHi() {
            System.out.println("this is unicycle");
        }
    
        @Override
        public void didi() {
            System.out.println("unicycle didi");
        }
    }
    

    执行类

    package main.chapter8;
    
    /**
     * 执行类
     *
     * @author
     * @create 2019-04-10 上午12:19
     **/
    public class Excutetest {
    
        public static void test(Cycle cycle){
            cycle.ride();
            cycle.sayHi();
        }
    
        public static void main(String[] args){
    
            test(new Unicycle());
    
        }
    }
    

    输出:
    cycle ride
    unicycle didi
    this is unicycle

    8.2.5

    父类:

    package main.chapter8;
    
    /**
     * Super类
     *
     * @author
     * @create 2019-04-11 上午12:17
     **/
    public class Super {
    
        public int field = 0;
        public int getField(){return field;}
    }
    

    子类

    package main.chapter8;
    
    /**
     * Sub class
     *
     * @author
     * @create 2019-04-11 上午12:18
     **/
    public class Sub extends Super {
    
        public int field = 1;
        public int getField(){return field;}
        public int getSuperField(){return super.field;}
    }
    

    测试类:

    package main.chapter8;
    
    /**
     * 执行类
     *
     * @author
     * @create 2019-04-10 上午12:19
     **/
    public class Excutetest {
    
        public static void test(Cycle cycle){
            cycle.ride();
            cycle.sayHi();
        }
    
        public static void main(String[] args){
    
    //        test(new Unicycle());
    
            Super sup = new Sub();
            System.out.println("sup.field = "+sup.field +
            ", sup.getField() =" + sup.getField());
    
            Sub sub = new Sub();
            System.out.println("sub.field = "+sub.field+", sub.getField() ="+sub.getField() +
            ", sub.getSuperField() =" + sub.getSuperField());
    
        }
    }
    

    相关文章

      网友评论

        本文标题:第8章 多态

        本文链接:https://www.haomeiwen.com/subject/paqgiqtx.html