Java教程

Java面向对象09——super

本文主要是介绍Java面向对象09——super,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Super

 

 main
 ​
 package oop.demon01.demon05;
 ​
 public class Application {
     public static void main(String[] args) {
 ​
        Student student=new Student();(3)
 //       student.test("秦疆");(1)先后
 //       student.test1();(2)
         
 ​
     }
 }
 --------------------------------
 //父类
 package oop.demon01.demon05;
 ​
 // 在Java中,所有的类,都默认直接或者间接继承Object
 //Person 人 : 类
 public class Person /*extends Object*/{
 ​
     public Person() {
         System.out.println("Person无参执行了");
     }
 ​
     protected String name="kuangshen";
 ​
     //私有的东西不能被继承(private)
     public void print(){
         System.out.println("Person");
     }
 ​
 }
 --------------------------------
 //子类
 package oop.demon01.demon05;
 ​
 // 学生 is 人 --- 子类(派生类)
 // 子类继承了父类,就会拥有父类的全部方法!
 public class Student extends Person {
 ​
     public Student() {
         /*
         Person无参执行了
         Student无参执行了
          */
         //隐藏代码:默认调用了父类无参构造  super();  如果是有参 要把参数写上
         super();//调用父类的构造器,必须在子类的第一行  调用子类也是(this)
         System.out.println("Student无参执行了");
     }
 ​
 ​
 ​
     private String name="qianjiang";
 ​
     public void print(){
         System.out.println("Student");
     }
 ​
     public void test1(){
         print();//Student
         this.print();//Student
         super.print();//Person (子类调用父类)
     }
 ​
     public void test(String name){
         System.out.println(name);//秦疆
         System.out.println(this.name);//qianjiang(this 当前这个类的)
         System.out.println(super.name);//kuangshen
     }
 ​
 }
 ​
 ​

注意点

 super注意点:
      1. super调用父类的构造方法,必须在构造方法的第一个
      2. super 必须只能出现在子类方法或者构造方法中
      3. super 和 this 不能同时调用构造方法
      
 Vs this
     代表的对象不同:
        this:  本身调用者这个对象
        super: 代表父类对象的应用
     前提
        this: 没有继承也可以使用
        super: 只能在继承条件才可以使用 
     构造方法
        this(): 本类的构造
        super(): 父类的构造!     
      
      

学习内容源自视频:b站狂神说Java

 

这篇关于Java面向对象09——super的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!