继承的注意事项:
1.子类只能继承父类所有非私有的成员(成员方法和成员变量)
其实这也体现了继承的另一个弊端:打破了封装性
2.子类不能继承父类构造方法但可以通过super关键字去访问父类构造方法。
3.不要为了部分功能而去继承。
注意事项1示例:
package com.company;
class Father {
private int num = 10;
public int num2=20;
private void method(){
System.out.println(num);
System.out.println(num2);
}
public void show(){
System.out.println(num2);
System.out.println();
}
}
class Son extends Father{}
public class jicheng_biduan {
public static void main(String[] args) {
Son son = new Son();
son.method();
son.show();
}
}
报错信息:
意思为对象son没有method方法,由此可以得出,子类并不能继承父类的私有方法和变量。
主要事项3示例:不要为了部分功能而继承。
class A{
public void show1();
public void show2();
}
class B{
public void show2();
public void show3();
}
此时我们发现,B类出现了和A类一样的方法show2(),此时我们想到运用继承来体现,把B类改为
class B extends class A{
public void show3();
}
但这样其实并不好,因为B继承A就会把A类里面的public方法全部继承,但此时我们可能并不想用show1();方法,但因为继承的特点,我们把A类里面的方法全部继承过来。
什么时候用继承?
采用假设法!
其实继承体现的是"is a"的关系,举个例子,
person
teacher
student
father
即 teacher is a person ,student is a person , father is a person .
现有A类和B类,如果A类是B类的一种,或者B类是A类的一种,这是我们就可以考虑运用继承。