标签:protect color 定义 继承 情况 protected prot 无法 方法
?子类无法直接调用父类的构造函数。可以通过super()方法间接调用,super在这里=父类的构造函数。注意点:(1)super必须是第一条语句。(2)super( )中传递的参数必须与父类构造函数中规定的顺序一致。
?继承会降低成员的访问权限,private—>无法直接访问,而默认、public、protected在子类中都可以直接访问。
?子类如何使用从父类继承下来的成员??(1)父类中的public成员,子类可以[1]直接通过成员名调用,[2]也可以通过super.成员名调用。(2)父类的private成员,子类无法直接访问,只能通过父类中的get方法访问,就连super.成员名都不可以访问。
?定义一个子类对象,一个父类变量(通常情况下 子类变量数 > 父类变量数 )。子类对象可以给父类对象赋值,被赋值后的父类对象叫做子类的“上转型对象”。父类可以调用[1]子类继承的方法,[2]子类重写的方法。但不能访问子类新增的方法。但是反过来,如果定义了一个父类对象,一个子类变量,父类对象无法为子类变量赋值。
可以这样理解:“多的”可以给“少的”赋值,多余的、不需要的那部分忽略掉即可。但“少的”不可以给“多的”赋值,因为缺少的那部分成员值系统无法确定值。
这里有个很有趣的东西:当我们知道父类对象无法为子类对象赋值后,便想一个“歪点子”,就是将父类对象强制类型转换为子类类型,虽然没有~~,但实际运行仍会报错。因为没有解决本质问题:补全缺少的成员值。
Animal a=new Animal("动物",0);
Dog d;
d=(Dog)a; //报错
标签:protect color 定义 继承 情况 protected prot 无法 方法
原文地址:https://www.cnblogs.com/versionk/p/10555988.html