黑马程序员技术交流社区

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

作者: msileandroid    时间: 2013-6-14 19:33
标题: 继承问题
子类是否继承父类的私有成员?????{:3_66:}
作者: j816326    时间: 2013-6-14 19:42
继承:
看代码:
        class Teacher
        {
                String name;
                int age;

                public void study()
                {
                        System.out.println("学习");
                }
        }
        class Student
        {
                String name;
                int age;

                public void study()
                {
                        System.out.println("学习");
                }
        }

        这样的时候,代码的重复度很高。
        那么,该怎么解决呢?
        我们可以这样思考:先定义一个类,里面包含共同的东西:

        class Person
        {
                String name;
                int age;

                public void study()
                {
                        System.out.println("学习");
                }
        }

        接着,在定义Teacher和Student类。
        不过,这个时候我们在写这两个类的时候,如果,他们能够和Person类产生一个关系,
        有了这个关系后,他们就可以拥有Person类的内容。这样该有多好呢?
        不用急,java中针对这种情况,提供了一种技术:继承。
        继承怎么表示呢?extends
        怎么用呢?
                class 类A extends 类B
                {
               
                }

                表示类A继承类B,这个时候,类A就具有了类B中的除了private修饰以外的东西。

        这个时候,来完成Teacher类和Student类。

        class Teacher extends Person
        {
       
        }

        class Student extends Person
        {
       
        }

        继承的好处:
                A:提高了代码的复用性。
                B:让类与类之间产生了关系,是多态的前提。

作者: msileandroid    时间: 2013-6-14 19:52
网上有人说子类在new时,仍然有父类的私有成员的内存空间,是不是就是继承了,只不过不能访问而已????{:soso_e132:}
作者: 影响力147753321    时间: 2013-6-14 19:52
1,私有成员对外不可见,private属性不能被继承;

2、子类对象实例化的时候会同时实例化一个父类对象;

3、子类中可以存在与父类private方法签名相同的方法,可以认为是覆盖。

子类不能继承父类的private属性(事实1),但可以通过继承的方法(比如,public方法)访问到父类的private属性。
作者: 孙百鑫    时间: 2013-6-15 07:12
楼主您好.请及时将主题改成 已解决哦
作者: com_heima    时间: 2013-6-15 07:57
私有成员不可以被继承,如果被继承那么父类成员,只可以是protected 和 public 这2种修饰
作者: To    时间: 2013-6-15 16:25
请及时改为已解决!
作者: 林森~Linson    时间: 2013-6-15 18:02
不能。只能继承protected,public,default类型的数据和方法
作者: 孙百鑫    时间: 2013-6-22 01:21
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~




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