zoukankan      html  css  js  c++  java
  • super关键字

    关键字super指代父类。

    用途:1)调用父类的构造方法

               2)调用父类的方法

    语法:super()、super(parameters)

    构造方法用于构造一个类的实例。子类继承父类时,父类的构造法方法不会被子类继承。所以需要用到父类的构造方法或方法时,super就派上用场啦。

    super()、super(paraments)必须出现在子类构造方法的第一行,是显示调用父类构造方法的唯一方式

    构造方法链

    构造方法可以调用重载的构造方法或父类的构造方法。

    如果都没有被显示地调用,编译器会自动地将super()作为构造方法的第一条语句。

    public class Person {
        public Person() {
            System.out.println("first");
        }
    }
    public class Employee extends Person{
        public Employee() {
            this("second");//this调用本类的有参构造方法
            System.out.println("third");
        }
        public Employee(String s) {
            System.out.println(s);
        }
    }
    
    public class Faculty extends Employee {
        public static void main(String[] args) {
            new Faculty();
        }
        public Faculty() {
            System.out.println("fourth");//super()没有显式调用的话,自动调用父类无参构造方法,所以每个类最好都写下无参构造方法
        }
    }

    运行结果:

    在调用Faculty的无参构造方法前,因为Faculty是Employee的子类,所以先调用父类无参构造方法,由于Person是Employee的父类,所以先调用父类的的无参构造方法。

    在设计一个可以被继承的类时,最好为每一个类提供一个无参构造方法,以便于对该类进行扩展,同时避免错误。

    调用父类的方法

    super.方法名(参数);

    如果仅仅是调用父类的方法,是不需要使用super的,子类直接继承父类的方法,可以直接调用。

    在方法重写中就需要用到关键字super!

    方法重写

    什么是方法重写:子类修改父类的方法。

     public class Person {
         public Person() {
             System.out.println("first");
         }
     } 
    public class Employee extends Person{
         public Employee() {
             this("second");
             System.out.println("third");
         }
         public Employee(String s) {
             System.out.println(s);
         }
         public String Change() {
             return "This is Person";
         }
     } 
    public class Faculty extends Employee {
         public static void main(String[] args) {
             Faculty user=new Faculty();
             System.out.println(user.Change());
     
         }
         public Faculty() {
             System.out.println("fourth");
         }
         public String Change() {
             //重写了父类的方法      
            return super.Change()+"
    This is Employee";
       
      }
     }

    运行结果:

  • 相关阅读:
    Windows Mobile自动更新
    【实用代码片段】将json数据绑定到html元素 (转)
    B/S打印解决方案参考
    python基础之1-安装
    python里的生成器
    python中的函数的执行分类
    python中的return的返回与执行
    自创最精简的python装饰器
    python中的lambda函数用法
    python中的str.strip()的用法
  • 原文地址:https://www.cnblogs.com/codercql/p/13308383.html
Copyright © 2011-2022 走看看