• 继承、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 * */
  • 相关阅读:
    zookeeper简介
    LRU和LFU的区别和使用场景
    windows环境搭建Webpack5 + Vue3项目实践
    Javascript 导出文件(post、get请求)
    解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
    2021 ASP.NET Core 开发者路线图
    华为云云原生王者之路钻石集训营--学习笔记
    Kubernetes全栈架构师(资源调度上)--学习笔记
    Kubernetes全栈架构师(基本概念)--学习笔记
    Kubernetes全栈架构师(Docker基础)--学习笔记
  • 原文地址:https://www.cnblogs.com/xiaoxiaolulu/p/11340477.html
Copyright © 2020-2023  润新知