1 /**
2 * 继承 :就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接
3 * 访问父类中的非私有的属性和行为
4 * */
5
6 /**
7 * class 父类 {
8 * ...
9 * }
10 * class 子类 extends 父类 {
11 * ...
12 * }
13 * */
1 public class Employee {
2
3 String name;
4
5 public void work(){
6 System.out.println("加班加成煞笔");
7 }
8 }
9
10
11 public class Teacher extends Employee {
12
13 public void printName(){
14 System.out.println("name" + name);
15 }
16 }
17
18
19 public static void main(String[] args) {
20
21 Teacher t = new Teacher();
22 t.name = "弱鸡";
23 t.printName();
24 t.work();
25 }
1 public class Fu
2 {
3 int num = 5;
4 int num2 = 6;
5 }
6
7
8 public class Zi extends Fu {
9
10 int num = 6;
11 /**
12 * 子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰
13 * 父类成员变量,类似于之前学过的 this
14 * */
15 public void show(){
16 System.out.println("Fu num" + super.num);
17 System.out.println("Zi num" + this.num);
18 }
19 }
20
21
22 public static void main(String[] args) {
23 Zi z = new Zi();
24 z.show();
25 }
1 /**
2 * 成员方法重名 ——重写(Override)
3 * 如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。
4 * 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效
5 * 果,也称为重写或者复写。声明不变,重新实现
6 * */
1 /**
2 * 1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
3 * 2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构
4 * 造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。代
5 * 码如下:
6 * */
7
8
9
10 public class Fu {
11
12 private int n;
13
14 public Fu() {
15 System.out.println("FU()");
16 }
17 }
18
19
20
21 public class Zi extends Fu{
22
23 public Zi() {
24 super();
25 System.out.println("Zi");
26 }
27 }
28
29
30 public static void main(String[] args) {
31 Zi z = new Zi();
32 }
1 /**
2 * super和this的含义
3 * super :代表父类的存储空间标识(可以理解为父亲的引用)。
4 * this :代表当前对象的引用(谁调用就代表谁)。
5 * Java只支持单继承,不支持多继承。
6 * */