zoukankan      html  css  js  c++  java
  • [ 原创 ] 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的用法
    生活不容易 所以必须得牛逼
  • 相关阅读:
    16 | 网络优化(中):复杂多变的移动网络该如何优化?
    Understanding Temporal Metrics
    Objective-C Runtime 大佬系列文章整理
    面向对象编程中的封装、抽象、继承、多态特性以及应用
    面向接口编程原理
    一次HTTP请求的完整过程——协议篇(DNS、TCP、HTTP)
    计算机网络 | 图解 DNS & HTTPDNS 原理
    CDN的加速原理是什么?
    让WKWebview支持NSURLProtocol总结
    WKWebView 请求拦截
  • 原文地址:https://www.cnblogs.com/ILoke-Yang/p/4957765.html
Copyright © 2011-2022 走看看