java子类访问父类私有成员_Java中子类可以继承父类的私有成员,但是不能(直接)访问!!!...

今天学习Java三大特征之一:继承的时候,产生了一些疑问,最后通过网上查找和各位网友的帮助,终于拔开云雾见日出。下面进入正题:

首先:子类对象拥有父类中的所有属性和方法;在这里,很多人会问构造器可以继承吗?答案不言而喻,构造器是不可以继承。(这里要注意构造器并不是方法,具体原因大家可以回顾一下方法的几个特征。)

主要谈一下,父类的私有成员。

上面提到:子类对象拥有父类中的所有属性和方法,则子类当然也继承了父类的私有属性和方法。但是它不能直接访问,之所以说不能直接访问,而不是不能访问,那是因为一旦父类提供了其私有成员的公共访问方法,那么子类就可以访问其私有成员。

父类的私有方法,不能被重写;

子类在重写父类的非私有方法时,一定要注意:子类中的方法的权限必须大于或者等于父类中的权限;(public > protected>默认访问权限(包权限)>privated)

class Parents

{

Private String  wealth;//这里wealth声明为一个私有成员

public String getWealth()//提供了一个访问wealth的公共函数getWealth();

{

return wealth;

}

}

public class Son extends Parents

{

public static void main(String [] args)

{

Son son = new Son();

String ParentsWealth =  son.getWealth();//这样就可以访问到父类的私有成员

System.out.println("父类的财富为:"+ParentsWealth);

}

}

接下来,简要说一下继承发生后,其子类对象的组成:

在子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类的外部加上子类独有的属性和方法,两者共同组成了子类的一个对象。简单用公式表达: 子类对象  =  父类对象   + 子类特有的属性和方法

大家都知道,创建对象时要调用构造器

这里可以看出:在创建子类对象时,首先要调用父类的构造器。(编程时最好显示把无参构造函数先写出来)

你可能感兴趣的:(java子类访问父类私有成员)