黑马程序员技术交流社区

标题: 关于继承的一个小问题 [打印本页]

作者: 邹铭钰    时间: 2013-3-20 10:21
标题: 关于继承的一个小问题
本帖最后由 邹铭钰 于 2013-3-20 11:10 编辑

子类可以继承父类的属性和方法,那么父类定义了私有的,子类可能继承???

作者: 何仕映    时间: 2013-3-20 10:24
不可以的,被private修饰的只能在本类中有效。被私有修饰的函数,子类是看不见的也就是不能继承的。
作者: Alex shaw    时间: 2013-3-20 10:26
不可以,父类的私有方法只有自己的实例可以访问到
如果该私有方法为静态则也可以通过类名来访问
子类是无法访问父类的私有方法的,但是父类的protect方法子类是可以访问的
作者: 爪哇攻城狮    时间: 2013-3-20 10:26
  1. 当然不能,私有的只能在本类中才可以访问 。
  2. 1) private
  3.   类中限定为private的成员,只能被这个类本身访问。
  4.   如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。

  5.   2) default
  6.   类中不加任何访问权限限定的成员属于缺省的(default)访问状态,可以被这个类本身和同一个包中的类所访问。

  7.   3) protected
  8.   类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。

  9.   4) public
  10.   类中限定为public的成员,可以被所有的类访问。
复制代码

作者: 邹铭钰    时间: 2013-3-20 10:33
子类不能继承父类,那么多态里定义一个父类引用指向子类对象,这样能不能使用父类里的私有呢?
作者: 我手心里的宝    时间: 2013-3-20 10:45
子类不能继承父类的私有方法,但是可以通过get方法获取父类的私有属性
例:
class Parent{
        private String name;
        private int age;
       Parent(String name,int age){
           this.name=name;
           this.age=age;
      }
     public void getAge(){//提供get方法,让子类进行访问
             return this.age;   
     }
}
class Son{
            Son(){
                  super(name,age);           
             }
             super.getAge();//通过getAge获取age信息
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2