zoukankan      html  css  js  c++  java
  • 多态(重点:方法的多态性和对象的多态性)

    父类引用变量强制转子类,子类的方法可以调用了
    class A{
        public void say(){
            System.out.println("类A进行say");
        }
    }
    
    class B extends A{
        @Override
        public void say(){
            System.out.println("子类B进行say");
        }
        public void say1(){
            System.out.println("子类B进行say1");
        }    
    }
    
    class C extends A{
        @Override
        public void say(){
            System.out.println("子类C进行say");
        }
        public void say1(){
            System.out.println("子类C进行say1");
        }    
    }
    
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            A a1 = new B();//向上转型
            A a2 = new C();
            a1.say();// 子类B进行say
            a2.say();// 子类C进行say
            //a对象会遗失和父类不同的方法,a点不出来say1()这个方法
            B b1 = (B)a1;
            b1.say1();//子类B进行say1    
            b1.say(); //子类B进行say
        }
        
    }
    
    /*向上塑性的好处是,增加extensible,
    增加一个实现类c,照样可以用A的引用变量.say()*/
    
    —————————————————————————————————————————————————
    接口类型强制转换成实现类类型
    interface A{
        public void say();
    }
    
    class B implements A{
        @Override
        public void say(){
            System.out.println("子类B进行say");
        }
        public void say1(){
            System.out.println("子类B进行say1");
        }    
    }
    
    
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            A a = new B();
            a.say();//子类B进行say,点不出say1()
            B b =(B)a; //这里必须进行强制转换;接口类型a转类类型b
            b.say();//子类B进行say
            b.say1();//子类B进行say1
    
        }
    
    }
  • 相关阅读:
    51Nod 1009 数字1的数量(思维)
    「CTSC 2008」祭祀
    「CSA Round #41」BFS-DFS
    「CEOI2008」order
    「HEOI 2016/TJOI 2016」求和
    「HAOI 2018」染色
    「CF 961G」Partitions
    「WC 2007」剪刀石头布
    「POI 2010」Bridges
    「CQOI 2014」危桥
  • 原文地址:https://www.cnblogs.com/cs-lcy/p/7413930.html
Copyright © 2011-2022 走看看