继承也可以继承私有属性

/*
 *继承也可以继承私有属性。 
 */
public class Demo1 {
public static void main(String[] args) {
Demo3 d=new Demo3();
System.out.println(d.getAge());
}
}






class Demo2{
final private int age=1000;


public int getAge() {
return age;
}




}
class Demo3 extends Demo2{

}
### Python 类继承中的私有属性行为 在 Python 中,当定义一个带有双下划线前缀的变量时,该变量会被视为私有成员。实际上,Python 并不是真正意义上的严格访问控制,而是通过名称改写来实现所谓的“私有”。对于子类而言,父类中的私有属性不会被直接继承。 例如,在下面的例子中展示了这种特性: ```python class Parent: def __init__(self): self.__private_var = "I'm private" self.public_var = "I'm public" def get_private(self): return self.__private_var class Child(Parent): def access_parent_private(self): try: return self.__private_var # 尝试访问父类的私有属性 except AttributeError as e: return str(e) parent_instance = Parent() child_instance = Child() print(child_instance.access_parent_private()) print(parent_instance.get_private()) ``` 上述代码运行结果如下[^1]: - 子类实例尝试直接访问父类的 `__private_var` 属性会抛出异常,因为这个属性已经被重命名为 `_Parent__private_var`。 - 父类提供了一个公共方法 `get_private()` 来获取其内部的私有数据,则可以通过这种方式间接地读取到这些信息。 因此,在设计面向对象程序时需要注意这一点,如果希望某些字段只限于当前类内使用而不暴露给派生类或其他外部模块的话,可以考虑采用双下划线命名法;但如果想要让派生类也能够方便地共享这部分逻辑或状态,则应避免这样做并寻找其他解决方案,比如保护级别(单个下划线)或者完全公开。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值