Fork me on GitHub

继承、super、this

 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 * */

 

posted @ 2019-08-12 15:34  未凉残念浮生若梦  阅读(179)  评论(0编辑  收藏  举报