Student 类:
1 package cn.skyfffire; 2 3 /** 4 * 5 * @author skyfffire 6 * 7 */ 8 public class Student { 9 private int id; 10 private String name; 11 12 // getter/setter 13 public int getId() { 14 return this.id; 15 } 16 17 public void setId(int _id) { 18 this.id = _id; 19 } 20 21 public String getNameString() { 22 return this.name; 23 } 24 25 public void setName(String _name) { 26 this.name = _name; 27 } 28 }
新建一个类继承Student类:
1 package cn.skyfffire; 2 3 /** 4 * 5 * @author skyfffire 6 * 7 */ 8 public class SuperStudent extends Student { 9 10 }
新建测试类:
1 package cn.skyfffire; 2 3 /** 4 * 5 * @author skyfffire 6 * 7 */ 8 public class Test { 9 public static void main(String[] args) { 10 SuperStudent ss = new SuperStudent(); 11 12 ss.setId(100); 13 14 System.out.println(ss.getId()); 15 } 16 }
输出结果:100
我们发现private修饰的Student的成员属性居然被SuperStudent继承下来了?
究竟是怎么回事?
不是说好的private不能被子类访问吗?
查找了资料后发现:子类继承父类会继承所有属性!但没有权限访问父类的成员属性!