1、继承关系
父类/基类/超类
子类/派生类
子类继承父类一定在合理的范围进行继承的 子类 extends 父类
2、继承的好处
1)提高了代码的复用性,父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了。
2)便于代码的扩展
3)为了以后多态的使用。是多态的前提。
3、父类private修饰的内容,子类也继承过来了
需要注意的点:
父类private修饰的内容,子类实际上也继承,只是因为封装的特性阻碍了直接调用,但是提供了间接调用的方式,可以间接调用。
4、一个父类可以有多个子类
5、一个子类只能有一个直接父类
会报错:
但是可以间接的继承自其它类。
7、继承具有传递性
Student --> 继承自 Person ---> 继承自Object (Object类是所有类的根基父类)
所有的类都直接或者间接的继承自Object。
代码示例:
Person类 ——> 父类:
package Package8_face_the_object.test_2_Inheritance;
public class Person {
//属性
private int age;
private String name;
private double height;
//提供setter、getter方法(快捷键:alt + insert)
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
//方法
public void eat(){
System.out.println("可以吃饭。。。");
}
public void sleep(){
System.out.println("可以睡觉。。。");
}
}
Student类 ——> 子类:
package Package8_face_the_object.test_2_Inheritance;
//创建Person类的子类:Student类
public class Student extends Person{
//继承之后,只需要创建自己特有的属性就行了,有的就不用再创建了
//特有的属性 —— 学号
private int sno;
public int getSno(){
return sno;
}
public void setSno(int sno){
this.sno = sno;
}
//方法
public void study(){
System.out.println("学生可以学习。。。");
}
}
Test类:
package Package8_face_the_object.test_2_Inheritance;
public class Test {
public static void main(String[] args) {
Student s = new Student();
s.setSno(11137);
s.setAge(20);
s.setName("小红");
s.setHeight(180.6);
System.out.println("学生名字为:"+s.getName()+",学生的年纪为:"+ s.getAge());
//访问方法
s.study();
s.eat();
s.sleep();
}
}