重載
重載指的是兩個或者兩個以上同名函數,但它們的參數不一樣,這時會出現函數重載的情況。比如下面這段代碼
class Test{
public void a(){
System.out.println("正常");
}
public void a(String t){
System.out.println("第二個a" + t);
}
}
class app{
public static void main(String[] args){
Test test = new Test();
test.a("啊"); // 函數被重載
test.a(); // 未被重載
}
}
------Output------
第二個a啊
正常
也就是它具體使用那個函數,是根據你的參數來決定的。
重寫
通俗講就是覆寫,在Java好像對同一個類中,不支援重寫,下面這段代碼,運作就報錯了。
class Test{
public void a(){
System.out.println(0);
}
public void a(){
System.out.println(1);
}
}
class app{
public static void main(String[] args){
Test test = new Test();
test.a();
}
}
------Output------
app.java:5: ??: ??? Test?????? a()
public void a(){
^
1 ???
一般來說,也沒人會這麼寫,使用重寫,基本上是在繼承中,比如下面這段代碼。
class Test{
public void a(){
System.out.println(0);
}
}
class Test2 extends Test{
public void a(){
System.out.println(1);
}
}
class app{
public static void main(String[] args){
Test2 test = new Test2();
test.a();
}
}
------Output------
1
class Test{
public int a(){
return 0;
}
}
class Test2 extends Test{
private int a(){
return 1;
}
}
class app{
public static void main(String[] args){
Test2 test = new Test2();
test.a();
}
}
報錯