面向对象--继承--使用继承的注意事项
使用继承的注意事项
- 子类只能继承父类的所有非私有的成员(成员变量和成员方法)
体现了继承的另一个弊端:打破了封装性
- 子类可以继承父类的构造方法吗?
要想初始化子类,就必须先初始化父类
子类不能继承父类的构造方法,但是可以通过super(后面讲)关键字去访问父类构造方法。
- 不要为了部分的功能特地的去使用继承
例如:
class A{
show1();
show2();
}
class B{
fun1();
fun2();
fun3();
show1();
}
- 那什么情况下使用继承呢?
可以满足什么是什么("is a")这个关系的时候,就可以用继承了。
例如:苹果是水果
水果:
苹果,橘子,西瓜,草莓
液态:
水,可乐,芒果汁
程序示例
class Father3{
String name;
private int age;
public void eat(){
System.out.println("吃饭");
}
private void fly(){
System.out.println("飞翔");
}
}
class Son3 extends Father3{
}
public class ExtendsDemo4 {
public static void main(String[] args) {
//创建儿子对象
Son3 s = new Son3();
s.name = "小明";
// 父类私有的成员变量不能被继承
// s.age = 18;
// System.out.println(s.name+"---"+s.age);
s.eat();
// 父类私有的成员方法不能被继承
// s.fly();
}
}