[ 原创 ] Java基础2--构造方法的继承和重载

1.构造方法的重载是指同一个类中定义不同参数的多个构造方法,已完成不同情况下对象的初始化。

例如:

Point();
Point(x);
Point(x,y);

2.一个类的若干个构造方法之间可以相互调用,当类的构造方法需要调用另一个构造方法时,可以使用关键子 this();括号可以带参数或不带参数,并且这个调用语句必须是这个构造方法的第一个可执行语句。

例如:

class Sun {
    Sun(int a){
     System.out.println("Hello this is week "+a);
      }
    Sun(){
      this(5); //调用另一个构造方法
    System.out.println("My name is Sun");
     }
   }

public class Test{
    public static void main(String args[]){
     Sun moon=new Sun();

    }


 }
运行结果:
Hello this is week 5
My name is Sun
this的用法

3.构造方法的继承

Java中子类可以继承父类的构造方法,构造方法的继承遵循以下的原则:

一.子类无条件的继承父类的无参数构造方法

二.对于带参数的父类的构造方法,子类可以在自己的构造方法中使用super关键字来调用它,但这个调用的语句必须是子类构造方法中的第一个可执行语句

三.如果子类中没有定义构造方法,则它将继承父类的无参数构造方法作为自己的构造方法(注意不是将父类的带参数的构造方法作为自己的构造方法)l如果子类定义了构造方法,则在创建对象时,将先执行来自继承父类的无参数构造方法,然后在执行自己的构造方法。

四.父类与子类的构造方法的执行顺序:先执行父类的构造方法,再依次执行子类的构造方法

例如:

class A{
    public A(){
        System.out.println("Hello A");
    }
}

class B extends A{
    public B(){
        System.out.println("Hello B");
    }
}

class C extends B{
    public C(){
        
        System.out.println("Hello C");
    }
}

public class Test {

    public static void main(String[] args) {
        C c=new C();
    }

}
构造方法的继承

 4.super的用法

一.当在子类的构造方法中需要调用父类无参数的构造方法时,要用到super关键字,且super();只能放在子类构造方法的第一个语句。

例如:

package Yang;

public class MyTest {

    public static void main(String[] args) {
        river i=new river();

    }

}


class Build{
    
    Build(){
        System.out.println("我叫杨萌晖");
        for(int i=1;i<=20;i++){
            if(i%3==0){
                System.out.println("Oh It's sunny today " +i);
            }
            else if(i%5==0){
                int b=i;
                System.out.println("西南科技大学" +b);
            }
                
        }
}
}

class river extends Build{
    river(){
        super();
        System.out.println("我今年上大二了");
    }
}
super的用法
生活不容易 所以必须得牛逼
原文地址:https://www.cnblogs.com/ILoke-Yang/p/4957765.html