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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

除了private方法和对象不继承,其他的都能给子类继承
回复 使用道具 举报
wdd 中级黑马 2015-6-7 20:30:46
42#
Enhon1992 发表于 2015-6-7 19:31
你确定你的说法是正确的! 不会坑我吧 ,我准备把最佳答案给你了

其实你自己试一下,就会懂了,我是这么理解的  :lol
回复 使用道具 举报
继承
      不管父类中的成员是public、protected、default还是private访问权限、子类都会拥有父类中的成员,也就是说,在堆内存中的子类对象里面有一个父类对象。
     拥有并不代表可以直接访问:private成员变量,子类对象无法直接访问;default成员变量,子父类同一个包,可以直接访问,不在同一个包是不能直接访问的。其他访问权限都是可以使用子类对象直接访问父类成员。
     父类中的成员变量是静态的、还是非静态的,子类都会拥有父类中的这些成员变量。只要没有被private修饰都是可以直接调用的。
  1. class Demo{
  2.    public  static void main(String[] args){
  3.        System.out.println(Son.name);
  4.        Son.show();
  5.    }
  6. }

  7. class Father{
  8.      static String name="hxf";
  9.      static void show(){
  10.       System.out.println("父类:"+name);
  11.       }
  12. }

  13. class Son extends Father{
  14. }
复制代码

输出结果:
hxf
父类:hxf
回复 使用道具 举报
讨论的很详细,已拜读:victory:!
回复 使用道具 举报
静态的成员是能被继承的,若是私有的就不能了
回复 使用道具 举报
不会继承私有的成员因为子类根本看不到父类的私有,除非对私有的成员定义访问方式才可被访问
回复 使用道具 举报
(此生即为“无限剑制”。) この体は”无限の剣”で出来ていた 此生,定为无限之剑所成
回复 使用道具 举报
刚学到这,不明觉厉
回复 使用道具 举报
少年闰土 发表于 2015-6-4 13:47
子类对象拥有父类对象中所有的属性和方法,但是父类对象中的私有属性和方法,子类是无法访问到的,只是拥有 ...

刚刚试了下, 确实能继承, 否则在公有方法中子类就无法访问父类的私有变量 ,  按照马士兵说得继承原理,子类对象的内存中包含一个父类对象并占用部分父类对象内存,  子类对象一旦new出来后内部的父类对象也会被创建,只是此父类对象并不是真实存在的, 本身作为子类对象的一部分存在,  无法独立存活.(说的感觉像内部类似的....).
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马