java中 什么叫隐藏(Hide)? 最好给个例子

4.隐藏  

技术核心和实例前面已经给出,这里只是给出大家对这种现象的一个定义而已,马克-to-win:子类重新定义一个与父类那里继承来的域变量完全相同的变量,称为域的隐藏。
这里所谓隐藏是指子类拥有了两个相同名字的变量,一个继承自父类,另一个由自己定义。相当于把父类的变量“隐藏”起来了。 
但子类的方法可以通过super操作父类的成员变量。

下面的例子当中,就分新卡和老卡,this获取新卡的余额,super获取老卡的余额。

例1.4.1---

 

class HealthCardM_t_w {
    double balance = 90;
    double getBalance() {
        return this.balance;
    }
}

class New_Card extends HealthCardM_t_w {
    double balance; // 隐藏父类的balance
    public New_Card(int in) {
        balance = in;
    }
    double getOldBalanceInNew_Card() {
        return super.balance;
    }
    double getOldBalanceByMythodInNew_Card() {
        return super.getBalance();
    }
    double getThisBalanceInNew_Cardget() {
        return this.balance;
    }
}

public class Test {
    public static void main(String args[]) {
        New_Card myNewCard = new New_Card(500);
/* 对象myNewCard有两个balance变量,一个继承自父类,另一个是自定义的。*/
        System.out.println("马克-to-win " + myNewCard.getThisBalanceInNew_Cardget());
        System.out.println("马克-to-win " + myNewCard.getOldBalanceInNew_Card());
        System.out.println("马克-to-win " + myNewCard.getOldBalanceByMythodInNew_Card());
        System.out.println("马克-to-win " + myNewCard.getBalance());

    }
}

 

更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44639795/article/details/103121805

posted @ 2021-01-21 15:15  师徒行者  阅读(1120)  评论(0编辑  收藏  举报