黑马程序员技术交流社区

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

作者: 刘家斌    时间: 2014-10-14 16:39
标题: 关于继承的问题
子类继承父类到底会不会继承父类私有的成员啊?如果不继承,那么在自定义异常中,message信息应该是私有的,又怎么会通过getMessage方法得到呢?
作者: 面具猴    时间: 2014-10-14 17:12
不可以,定义的私有成员一般都是被本类的共有方法使用,而子类或器创建的对象不需要知道私有的存在
作者: 刘家斌    时间: 2014-10-14 17:51
面具猴 发表于 2014-10-14 17:12
不可以,定义的私有成员一般都是被本类的共有方法使用,而子类或器创建的对象不需要知道私有的存在 ...

好吧,可能异常里有其他的设置
作者: 踏云    时间: 2014-10-14 18:15
继承中有一种隐式继承,就是你现在所说的这种情况。
隐式继承:
     父类中的private成员是是以隐式继承方式继承到子类中的,子类不可以直接调用隐式继承下来的成员,但是可以间接调用,也就是通过父类的非私有成员函数调用
class Demo3
{
        public static void main(String[] args)
        {
                Zi zi=new Zi("小明");
                zi.print();
        }
}

class Fu
{
        private String name;
        public Fu(String name){
                this.name=name;
        }

        //子类可以通过这个方法调用到从父类继承下来的私有成员
        public void print(){
                System.out.println(name);
                print1();
        }

        private void print1(){
                System.out.println("私有方法");
        }
}


class Zi extends Fu
{
        public Zi(String name){
                super(name);
        }
}


上面的代码就证明了猜想,如果没有继承私有成员,将会报错


作者: 刘家斌    时间: 2014-10-14 18:23
踏云 发表于 2014-10-14 18:15
继承中有一种隐式继承,就是你现在所说的这种情况。
隐式继承:
     父类中的private成员是是以隐式继承方 ...

意思是要使用继承自父类的公共访问方式才能访问父类的私有属性吗




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