java的隐藏函数_java – 隐藏子级数据成员的父成员函数

通过简单地声明其自己的字段版本,子项无法从父类中的方法隐藏字段.您正在反过来应用“数据隐藏”的想法.孩子永远不能隐藏父母的字段,但父母可以隐藏孩子的字段(通过将x声明为私有).如果你想,你可以

use encapsulation to achieve your desired effect,像:

class Parent{

private int x=10;

public int getX() {

return x;

}

void show(){

System.out.println(this.getX());

}

}

class Child extends Parent{

int x=20;

@Override

public int getX() {

return x;

}

public static void main(String[] args){

Child c=new Child();

c.show();

}

}

通过重写getX()访问器方法,子进程可以隐藏来自世界其他地方的父对象x的值.

其他一些值得讨论的观点:

The thing I know is that whenever we are extending a class its parent

class member-function and data-members are available to Child class

这不完全正确.私有方法和数据成员不会(直接)可用于子类.子类只能直接访问公共,受保护和“包级”方法和字段.

Also, I want to know that when we create an object of Child class its

Parent class data-members are put in the Parent section of Child class

object in Heap, but what happens to member-functions?

不是每个实例创建成员函数.如果JVM像那样工作,那将是非常低效的.相反,给定类的方法实现只定义一次,作为永久生成的一部分,其中包含类定义和其他内部JVM状态.给定类的所有实例将共享相同的方法定义.

对于子类,它将共享其父类的方法定义,并且还将为子类中存在的任何方法(以及它覆盖的任何方法)添加自己的定义.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值