A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© funneies 中级黑马   /  2013-8-21 13:07  /  1935 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

继承中子类可以继承父类的私有属性吗?不太明白,求解答。

8 个回复

正序浏览
不可以的  private修饰符修饰的成员变量和方法只有自己可以使用,其余的类不可见。
回复 使用道具 举报
不可以直接访问父类中的私有方法
在java中,private修饰的方法只有在其本类中可以被访问,此方法对类外是不暴漏的。如果在类外有方法要调用本类内的私有方法是无法实现的,被私有化的方法对于类外的方法来说是不可见,也就是说,类外的方法是不知道类内存在这方法,所以类外方法是无法访问类内的私有方法的。就继承而言,虽然子类继承父类后,子类可以直接访问父类中的方法,但是子类与父类并不是同一个类,所以子类访问父类的方法仍然属于类外访问。如果父类将其内部的方法私有化,对于子类而言,子类是不知道父类中存在这种方法的,也就不存在子类访问这种方法。所以父类中私有化的方法,子类是无法访问的,子类只能访问父类中的公有方法。
回复 使用道具 举报
不可以基础父类中的私有方法
在java中,private修饰的方法只有在其本类中可以被访问,此方法对类外是不暴漏的。如果在类外有方法要调用本类内的私有方法是无法实现的,被私有化的方法对于类外的方法来说是不可见,也就是说,类外的方法是不知道类内存在这方法,所以类外方法是无法访问类内的私有方法的。就继承而言,虽然子类继承父类后,子类可以直接访问父类中的方法,但是子类与父类并不是同一个类,所以子类访问父类的方法仍然属于类外访问。如果父类将其内部的方法私有化,对于子类而言,子类是不知道父类中存在这种方法的,也就不存在子类访问这种方法。所以父类中私有化的方法,子类是无法访问的,子类只能访问父类中的公有方法。
回复 使用道具 举报
您好!

被private修饰过的变量或方法是不能被外部类所访问,因此更不能被父类所继承。

以下代码和载图供您参考:
  1. class A
  2. {
  3.         private int x = 1;
  4.        
  5. }

  6. class B extends A
  7. {
  8.         public static void main(String[] args)

  9.         {        System.out.println(x);
  10.                 System.out.println("被private修饰过的变量或方法是不能被外部类所访问,因此更不能被父类所继承");

  11.         }
  12. }
复制代码
上面的代码在编译时会报如下错误,如果不调用父类的私有化变量编译通过。




评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
不可以.
可以继承所有公共字段和方法...

被private修饰的字段/方法意味着不能被外部类直接访问.而子类虽然继承了父类,但是其本质上依然是外部类

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 brucel50 于 2013-8-21 13:24 编辑

不好意思,看错交流区了···
怎么把自己的回答删掉呀···

点评

欢迎来串门  发表于 2013-8-21 15:57
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马