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);
   }
}

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

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

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

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


转载于:https://my.oschina.net/u/2372421/blog/418826

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值