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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘家斌 中级黑马   /  2014-10-14 16:39  /  1892 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

子类继承父类到底会不会继承父类私有的成员啊?如果不继承,那么在自定义异常中,message信息应该是私有的,又怎么会通过getMessage方法得到呢?

4 个回复

倒序浏览
不可以,定义的私有成员一般都是被本类的共有方法使用,而子类或器创建的对象不需要知道私有的存在
回复 使用道具 举报
面具猴 发表于 2014-10-14 17:12
不可以,定义的私有成员一般都是被本类的共有方法使用,而子类或器创建的对象不需要知道私有的存在 ...

好吧,可能异常里有其他的设置
回复 使用道具 举报
继承中有一种隐式继承,就是你现在所说的这种情况。
隐式继承:
     父类中的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:15
继承中有一种隐式继承,就是你现在所说的这种情况。
隐式继承:
     父类中的private成员是是以隐式继承方 ...

意思是要使用继承自父类的公共访问方式才能访问父类的私有属性吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马