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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 2528870651 于 2014-3-15 12:32 编辑
  1. class ExtendsDemo2

  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Zi p= new Zi();
  6.                 p.show();
  7.         }
  8. }

  9. class Fu
  10. {
  11.         private int a= 4;   //把a私有化
  12. }

  13. class Zi extends Fu
  14. {
  15.         // int a=3;
  16.          void show()
  17.          {
  18.                 System.out.println(super.a);  //访问不到a,到底是Zi没有继承a,还是私有化了没办法访问啊
  19.          }
  20. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

6 个回复

倒序浏览
私有化的问题。
private 类访问权限:本类内部可以访问,不能继承到子类;
default 什么都不写,包访问权限:本类内部可以访问,同包其他类也可以访问,同包可继承;
protected 子类访问权限:本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问,能继承到子类;
public 公共访问权限:任何地方都可以访问,能继承到子类;

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
private 修饰的成员变量或者方法都只能在类定义的内部使用
  1. class ExtendsDemo2

  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Zi p= new Zi();
  6.                 p.showZi();
  7.         }
  8. }

  9. class Fu
  10. {
  11.         private  int a= 4;   //把a私有化
  12.                 private void show()
  13.                 {
  14.                         System.out.println("父类的private方法");
  15.                 }
  16.                
  17. }

  18. class Zi extends Fu
  19. {
  20.         private void showZi()
  21.                 {
  22.                          super.show();
  23.                 }
  24.       
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
被私有化的成员是不能被子类继承的,只在它所在的类中有效。
回复 使用道具 举报
private:私有只在本类中有效,zi就不能继承fu了。要想继承,去掉private就行了。
回复 使用道具 举报
确实是私有的问题,私有后只能在本类中被访问到,私有就是封装,私有后可以通过set和get方法来获取私有值
  1. class Fu{
  2. private int a =4;
  3. public void set(int a){
  4. this.a = a;
  5. }
  6. public int get(){
  7. return a;
  8. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
谢谢大家的回答  !!  父类中 a被私有化了 所以子类再来继承的话  子类根本不知道有一个a
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马