簡體   English   中英

如何為子類創建構造函數

[英]How to create constructor for a subclass

import java.util.*;

class A {

    protected int n;

    public A(int a) {
        n = a;
    }

    protected int disp() {
        return n;
    }
}

class B extends A {

    // what should i do here
}

public class Hello {

    public static void main(String[] args) {
        //Your Code Here
        int a =5;
        A obj= new B(a);
        System.out.print(obj.disp());
    }
}

您應該在B類中執行以下操作:

class B extends A {
  public B(final int a) {
    super(a);
  }
}

這里發生的事情是我們正在調用我們的父級 ( A ) 的構造函數

重要的是A是使用其構造函數之一進行初始化的。 這是沒有必要的兒童類的構造函數B匹配的構造函數的參數(S) A 因此,您可以在子類B定義任何構造函數,但請確保在其中調用super( <some int> )

例如,即使以下也可以。

class B extends A {
    public B(){ //Default constructor
        super( 1 );
    }
}

還,

  1. 如果子類B有多個構造函數,則每個構造函數都必須調用super( <some int> )
  2. 如果父類A有多個構造函數,那么在子類構造函數中,通過super( <params> )調用其中任何一個都可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM