• Java--super关键字用法


    看了马老师的视频,百度了一下,随即敲了一些代码,super是超人,超级的意思,层面上理解为父类

    class Person {


           Person(){
                 System.out.println("A person");
           }
           Person(String name){
                 System.out.println("A person name is=" + name);
           }//构造方法的重载(方法名返回值一样,名字一样,参数类型或者数量不同的称为方法的重载);
      }
    public class Chinese extends Person{
          Chinese(){
                 super();  //子类调用父类无形参的构造函数(子类的构造函数调用另一个类的构造函数时,super();一定要写在调用的构造函数的第一行);
                 System.out.println("A chinese");
      }
           Chinese(String name){
                 super(name); //调用父类具有相同形参的构造方法;
                 System.out.println("my name is =" + name);
     }
           Chinese(int age,String name){
                 this(name); \this:调用当前具有相同形参的构造方法.并且,当子类没有刻意用super();调用父类的构造方法的时候,系统默认的为它调用父类中无参的构造方法;
                 System.out.println("my age is=" + age);
     }//构造方法的重载!
       public static void main(String[] args){
               Chinese chinese = new Chinese();
               chinese = new Chinese("周杰伦");
               chinese = new Chinese(35, "周杰伦");
       }

    }

    运行结果如下:

    A person
    A chinese
    A person name is=周杰伦
    my name is =周杰伦
    A person name is=周杰伦
    my name is =周杰伦
    my age is=35

     继承中的构造方法总结为四点

    1:子类的构造过程中必须调用基类的构造方法;

    2:子类刻意在自己的构造方法中使用super(argument_list)调用基类的构造方法;

      a:使用this(argument_list)调用当前类的另外的构造方法;

      b:如果调用super();必须写在子类构造方法的第一行;

    3:如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用基类中无参的构造方法;

    4:如果子类构造方法中既没有显示地调用基类构造方法,而基类中没有无参的构造方法,则编译出错;

  • 相关阅读:
    SuperSocket中的Server是如何初Start的
    SuperSocket中的Server是如何初Initialize的
    Explicit Interface Implementation (C# Programming Guide)
    Interfaces (C# Programming Guide)
    Java泛型Restletclient
    jQuery 完成ajax传jsonObject数据,并在后台处理
    SDUT 2933-人活着系列Streetlights(最小生成树Kruskal+和理查德设置来实现)
    华为OJ:查找字符的第一个字符串只出现一次
    Linux查找多个类似,但不同的名称和重命名文件
    【Java收集的源代码分析】Hashtable源代码分析
  • 原文地址:https://www.cnblogs.com/wry13172/p/Java_super.html
Copyright © 2020-2023  润新知