如何处理Java中子类访问父类私有成员变量的继承难题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计974个文字,预计阅读时间需要4分钟。
“如果父类中属性为私有(private),那么这些属性能否被子类继承?答案是否定的。以下是一个简单的代码示例:
javaclass Father { private String name;
public void sayHi() { System.out.println(My name is + this.name); }}
如果父类中属性为私有(private),那么能否被子类继承呢?
答案是不可以。
我们看如下简单代码
class Father { private String name; public void sayHi() { System.out.println("My name is " + this.name); } } class Son extends Father {} public class PrivateFieldTest { public static void main(String[] args) { Father f1 = new Father(); Son s1 = new Son(); f1.sayHi(); s1.sayHi(); } }
得到的结果是:
My name is null My name is null
这里我们使用的都是默认构造函数,子类自动引用父类的默认构造函数。直接构造为null。
本文共计974个文字,预计阅读时间需要4分钟。
“如果父类中属性为私有(private),那么这些属性能否被子类继承?答案是否定的。以下是一个简单的代码示例:
javaclass Father { private String name;
public void sayHi() { System.out.println(My name is + this.name); }}
如果父类中属性为私有(private),那么能否被子类继承呢?
答案是不可以。
我们看如下简单代码
class Father { private String name; public void sayHi() { System.out.println("My name is " + this.name); } } class Son extends Father {} public class PrivateFieldTest { public static void main(String[] args) { Father f1 = new Father(); Son s1 = new Son(); f1.sayHi(); s1.sayHi(); } }
得到的结果是:
My name is null My name is null
这里我们使用的都是默认构造函数,子类自动引用父类的默认构造函数。直接构造为null。

