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:\n"+"a1 = "+obja.a1+"\t"+"a2 = "+obja.a2+'\t');
        //上转型用的仍然是父类的方法
        obja.arithmeticOperation(10, 10);
        //上转型,若父类中的方法被子类重写,则用子类
        obja.fatherMethod();
        
        //上转型不能访问子类中新增的成员变量和方法
        //System.out.println(obja.c1);
        
        objb=(B)obja;
        //下转型后,父类的成员变量被子类隐藏,用子类的成员变量
        System.out.print("\n 强制转换对象 objb:\n"+"a1 = "+objb.a1+"\t"+"a2 = "+ objb.a2+"\t");
        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()");
    }
    
}

 

 

转载于:https://www.cnblogs.com/caiyishuai/p/9871297.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值