① java中方法重載和構造方法的區別
方法重載就是同一個類中,有多個方法,方法名是一樣的,但是形參不一樣,調用的時候,程序會根據傳入的形參不同,而選擇對應的方法。例如void a(){} 和 void a(String b)和void a(int b){}就是重載的三個方法。
構造方法也叫構造器,它也是一種方法,也可以重載,它的方法名與類名相同,不用寫返回值,也不用加void。例如
class a{
public a(){}
}
另外構造器是在創建此類的對象的時候就會調用的,它的作用是初始化類的對象。 如果你沒有為類寫構造器,JAVA虛擬機自動為類添加一個無參數的構造器,只是你看不到。
② java中構造函數可被覆蓋么
您好,提問者:
1、構造函數可以被重載。
2、構造函數不可以被覆蓋(更不可覆蓋父類的構造函數)。
3、構造函數不可以被重寫,兩個相同參數的構造函數是不允許的。
③ .Java中,什麼是構造函數什麼是構造函數重載什麼是復制構造函數
當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,java編譯器會為這個類創建一個默認的構造函數。
java中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。
java不支持像c++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,java不會創建默認的復制構造函數。
④ Java函數重載只適用於構造函數嗎一般的類的方法可以重載嗎
方法重載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數的類型或參數的個數。一般的方法完全可以重載。
同時注意和重寫的區別,重寫就是在子類中把父類本身有的方法重新寫一遍,在方法名,參數列表,返回類型(包括子類中方法的返回值是父類中方法返回值的子類時)都相同的情況下, 對方法體進行修改或重寫。
⑤ java重載構造函數,無參數的原方法必須寫么
SubClass(int n) {
//super();
System.out.println("SubClass(" + n + ")");
this.n = n;
}
你在SubClass類里這樣寫的 super(); 這個意義是調用父類無參數的構造器,其實這一句你可以不用寫。一般子類都會默認調用父類無參數的構造器,但是如果沒給父類寫一個對子類可見的默認無參數構造器的話,就必須在子類的構造器里顯式調用父類的 含參數的構造器.
因為java創建對象,總是要先要從父類開始創建,因為只有父才有子嘛對不對?
你在代碼里是沒有創建它不錯,但是JAVA的機制就是從父類創建開始,而且JAVA里任何一個父類都是繼承自java.lang.Object的,它是所有類的基類,JAVA總是從創建這個類開始,然後再一個個向下建立子類
⑥ java中,方法重載和構造器重載一樣嗎
在使用new創建對象時,Java會根據提供的參數來決定構建哪一個構造器。比如在構建neZha時,我們提供了兩個參數: 整數150和字元串"shit",這對應第二個構建方法的參數列表,所以Java會調用第二個構建方法。
在Java中,Java會同時根據方法名和參數列表來決定所要調用的方法,這叫做方法重載(method overloading)。構建方法可以進行重載,普通方法也可以重載,比如下面的breath()方法:
public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human();
aPerson.breath(10);
}
}
class Human
{
/**
* breath() 1
*/
void breath()
{
System.out.println("hu...hu...");
}
/**
* breath() 2
*/
void breath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
System.out.println("lu...lu...");
}
}
int height;
}
運行結果:
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
lu...lu...
可以看到,由於在調用的時候提供了一個參數: 整數10,所以調用的是參數列表與之相符的第二個breath()方法。
⑦ Java中構造函數重載,一個構造函數是private一個是public,那這個類還可以new嗎
答案是private修飾的構造函數是不可以new的 ;public修飾的構造函數是可以new 的
舉例如下:
1、定義一個類Constructor 無參和有參構造分別public 、private修飾
package BaiKnows;
public class Constructor {
private int x=1;
public Constructor() {
System.out.println(" 無參是有構造函數");
}
private Constructor(int x) {
this.x=x;
System.out.println("帶參共有構造函數 X="+x);
}
}
2、從新定義測試類:
package BaiKnows;
public class ConstructorTest {
public static void main(String[] args) {
Constructor con = new Constructor();//這是可以的
//Constructor con = new Constructor(20);這不可以
}
}
⑧ .Java中,什麼是構造函數什麼是構造函數重載什麼是復制構造函數
創建對象的時候(一般都是new 一個對象,也有比如單例模式給一個方法,其實內部還是new),會調用構造方法,構造方法名和類名一致,默認的構造方式是無參數的方法,如public User(){}
再說下構造方法重載,重載的意思就是方法名相同,參數列表不同,如 public User(String id){ this.id = id;}
或者多個參數
public User(String id,String username){ this.id = id; this.username=username;}
java 不支持復制構造方法,就是沒有復制構造方法這一說
⑨ JAVA中 構造函數可以重載 C#中呢
Java中的構造函數可以重載,C#中的也可以。它們都是面向對象語言,面向對象語言的特點就是封裝,繼承和多態,其中重載也屬於多態的一個方面。