zoukankan      html  css  js  c++  java
  • Java学习——上转型与下转型对象

    上转型:重写父类方法才调用子类方法,其他仍用父类的,包括被子类隐藏的父类成员变量,而且不能调用子类新增的成员变量和成员方法。

    下转型:只能是转上去的才能转下去。下转型类似于该子类直接继承父类。

    package Pack1;
    
    public class updown {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            A obja;
            B objb;
            obja=new B();//obja为子类B对象的上转型对象
            //上转型用的仍然是父类的成员变量
            System.out.println("上转型对象 obja:
    "+"a1 = "+obja.a1+"	"+"a2 = "+obja.a2+'	');
            //上转型用的仍然是父类的方法
            obja.arithmeticOperation(10, 10);
            //上转型,若父类中的方法被子类重写,则用子类
            obja.fatherMethod();
            
            //上转型不能访问子类中新增的成员变量和方法
            //System.out.println(obja.c1);
            
            objb=(B)obja;
            //下转型后,父类的成员变量被子类隐藏,用子类的成员变量
            System.out.print("
     强制转换对象 objb:
    "+"a1 = "+objb.a1+"	"+"a2 = "+ objb.a2+"	");
            objb.arithmeticOperation(10, 10);
            objb.fatherMethod();
            System.out.println("c1 = "+objb.c1); 
        }
    
    }
    
    class A{
        int a1=10;
        int a2=100;
        public void arithmeticOperation(int x,int y){
            System.out.println("x + y = "+ ( x + y));
        }
        public void fatherMethod(){
            System.out.println("调用父类A的方法:fatherMethod()");
        }
    }
    
    class B extends A{
        int a2=1000;
        int c1=10000;
        public void fatherMethod(){
            System.out.println("调用子类B的方法:fatherMethod()");
        }
        
    }

     

  • 相关阅读:
    JS兼容性总结
    [妙味DOM]第五课:事件深入应用
    关于iOS开发的学习
    世界经典——乔布斯
    梦想改变世界
    乔布斯在斯坦福大学的演讲
    10步让你成为更优秀的程序员
    程序员的八个级别
    程序员的学习和积累
    哈佛大学二十条训言
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/9871297.html
Copyright © 2011-2022 走看看