override 與 overload 的區別+例子
override 是覆寫,overload 是過載。
override 是覆寫父類中的已經存在的方法,在完父類方法提供的功能上,加入新的內容,或完成修改方法提供的功能。
如:
執行結果為:
注意:super 表示父類
一般override的比較多的有 equals()
Object 的定義如下:
public boolean equals(Object obj) {
return (this == obj);
}
還有 finalize
protected void finalize() throws Throwable { }
overload 過載是在現在類的提供的引數上,加入新的引數功能。
最出名的就是 System.out.println() 了。
你可以用同樣的函式,輸出不同的資料型別
如: 字串 System.out.println("This is a TEST");
日期物件 System.out.println(new Date());
整型 System.out.println(500);
布林型 System.out.println(obj1.equals(obj2));
定義就很簡單,就是定義幾個函式,不同的引數而已
如:
常用的是在建構函式裡。
如:
注意:這裡的 this(); 呼叫了另一個構造器
完整程式碼如下:
執行結果:
{以上內容是本人編寫,如有不同意見,請留言}
override 是覆寫父類中的已經存在的方法,在完父類方法提供的功能上,加入新的內容,或完成修改方法提供的功能。
如:
class ClassA{ public void draw(){ ........ System.out.println("ClassA.draw()"); } } class ClassB extends ClassA { //從 ClassA 繼生一個 ClassB public void draw() { ....... System.out.println("ClassB.draw()"); super.draw(); // 關鍵字 super 表示父類 這裡為呼叫父類的 draw() 方法 } } |
執行結果為:
ClassB.draw() ClassA.draw() |
注意:super 表示父類
一般override的比較多的有 equals()
Object 的定義如下:
public boolean equals(Object obj) {
return (this == obj);
}
還有 finalize
protected void finalize() throws Throwable { }
overload 過載是在現在類的提供的引數上,加入新的引數功能。
最出名的就是 System.out.println() 了。
你可以用同樣的函式,輸出不同的資料型別
如: 字串 System.out.println("This is a TEST");
日期物件 System.out.println(new Date());
整型 System.out.println(500);
布林型 System.out.println(obj1.equals(obj2));
定義就很簡單,就是定義幾個函式,不同的引數而已
如:
class ClassA { public void show(int value) { .... } public void show(String str) { ....... } } |
常用的是在建構函式裡。
如:
class MyClass{ public int value = 100; public MyClass(){ System.out.println("Create Class MyClass."); } public MyClass(int Value){ this(); //呼叫另一個構造器 System.out.println("Class MyClass(Value)"); value = Value; } ... } |
注意:這裡的 this(); 呼叫了另一個構造器
完整程式碼如下:
01 02 class MyClass{ 03 public int value = 100; 04 05 public MyClass(){ 06 System.out.println("Create Class MyClass."); 07 } 08 09 public MyClass(int Value){ 10 this(); //呼叫另一個構造器 11 System.out.println("Class MyClass(Value)"); 12 value = Value; 13 } 14 15 public void draw(){ 16 System.out.println("MyClass draw()"); 17 } 18 19 public boolean equals(MyClass c) { 20 return (this.value == c.value); 21 super.equals( 22 } 23 } 24 25 class MyClassA extends MyClass { 26 public void draw() { 27 System.out.println("MyClassA draw()"); 28 super.draw(); 29 } 30 } 31 32 public class ClassTest { 33 public static void main(String[] args){ 34 MyClass class1 = new MyClass(); 35 MyClass class2 = new MyClass(120); 36 37 class1.value = 120; 38 //class2.value = 120; 39 40 System.out.println("class1 == class2 :" +(class1 == class2)); 41 System.out.println("class1.equals(class2):" + class1.equals(class2) ); 42 System.out.println("Test OK!"); 43 44 MyClassA class3 = new MyClassA(); 45 class3.draw(); 46 } 47 } 48 49 |
執行結果:
Create Class MyClass. Create Class MyClass. Class MyClass(Value) class1 == class2 :false class1.equals(class2):true Test OK! Create Class MyClass. MyClassA draw() MyClass draw() |
{以上內容是本人編寫,如有不同意見,請留言}
相關文章
- override 與overload 的區別IDE
- override與overload的區別IDE
- override與過載(overload)的區別IDE
- Overload 和 和 Override 的區別IDE
- 物件導向重寫(override)與過載(overload)區別物件IDE
- Java 重寫(Override)與過載(Overload)JavaIDE
- Java-override重寫與overload過載JavaIDE
- 19、Overload和Override的區別。Overloaded的方法是否可以改變返回值的型別?IDE型別
- 過載(Overload)和重寫(Override)的區別。過載的方法能否根據返回型別進行區分IDE型別
- override(重寫) and overload(過載)IDE
- Java 中的 override 和 overload,看這一篇就夠JavaIDE
- 一句話說明白C#中的new與override的區別C#IDE
- SpringMvc的xml配置與annotation配置的例子的區別SpringMVCXML
- 再借斧子的例子說一說spring與guice的區別SpringGUI
- JAVA過載(overload)和覆蓋(override)中你所不知道的陷阱JavaIDE
- 引用的例子 C C++ 中區別C++
- 二十二、SpringCloud分散式微服務雲架構之Java 重寫(Override)與過載(Overload)SpringGCCloud分散式微服務架構JavaIDE
- ??與?:的區別
- 區塊鏈的原理與golang實現例子區塊鏈Golang
- C#關鍵字之過載overload、重寫override、覆寫overwrite(new)詳解C#IDE
- MySQL的@與@@區別MySql
- mybatis #與$的區別MyBatis
- Null 與 “” 的區別Null
- &與&&, |與||區別
- in與exist , not in與not exist 的區別
- (12)非阻塞賦值與阻塞賦值區別(以簡單例子說明)賦值單例
- CentOS 與 Ubuntu 的區別CentOSUbuntu
- artice與section的區別
- GET 與 POST 的區別
- WebSocket 與 Socket 的區別Web
- Postgresql與MySQL的區別MySql
- chown與chmod的區別
- LESS與SASS的區別
- free 與 CFRelease 的區別
- gulp與webpack的區別Web
- @Autowired 與@Resource的區別
- let與var的區別
- post與get的區別