重寫,重載,傻傻分不清楚!??!
重寫,重載,傻傻分不清楚?。?!
求大神幫我分析下,最好能有例子說明;
拜托了?。?br />
重寫,重載,傻傻分不清楚?。?!
求大神幫我分析下,最好能有例子說明;
拜托了?。?br />
2016-07-11
還要例子?
給你例子。
abstract class A ? {
????public A(){} ?//這個是無參的構(gòu)造函數(shù)
????public A(int a){} ?//這個是有參數(shù)的構(gòu)造函數(shù)。這兩個方法名字是一樣的,但是參數(shù)不同,稱為方法的重載
? ? public abstract ?void say(){
????????????system.out.println("這個A 類的say方法")
????};
}
class B ?extexds A{
? ? public void say(){
????????//這個地方如果什么都不寫就是直接使用父類的方法,直接打印這個A 類的say方法
????????system.out.println("這個是B 類重寫A 類的say方法")
????????//但是如果A 類的方法你不想要,而是想打印"這個是B 類重寫A 類的say方法"這句話,就需要重寫父類的say方法。這個就叫重寫
????}
}
方法重載:方法名相同的方法必須在同一個類中,且方法參數(shù)的個數(shù)、類型或者順序不同,與方法的修飾符或者返回值沒有關(guān)系;
方法重寫:方法是從父類繼承過來的,但是當對于父類的方法實現(xiàn)功能不滿意時可以在子類中重寫,方法的名稱、參數(shù)類型、參數(shù)個數(shù)以及返回類型必須與父類的方法相同
重寫是父類的方法不能滿足需求,我們對他進行改造他們的函數(shù)名,函數(shù)返回值和參數(shù)必須相同
而重載是返回值,參數(shù)可以不同但是方法名必須相同,但是返回值不能作為區(qū)分重載函數(shù)的標志
呵呵噠。這有什么分不清的,他們兩個本來就沒有什么關(guān)系。
重寫是繼承關(guān)系里面的,繼承父類的方法,如果方法子類不適用,可以重寫父類的這個方法而已。
而重載是構(gòu)造函數(shù)里面的方法。方法名字一樣,但是里面的參數(shù)不一樣這叫重載。
這兩個東西沒有關(guān)系的。你別把他們放在一起混淆了,你只要記得繼承里面是重寫。構(gòu)造函數(shù)里面是重載
重寫(覆蓋,override,overwrite): 重寫父類的方法。
重載(overload): 一個類里有多個同名方法。怎么區(qū)分它們呢,它們有不同的傳入?yún)?shù)(不同類型、不同個數(shù)),使用這些方法時傳入?yún)?shù)的類型、個數(shù)決定了用的哪個方法。
舉報
2016-07-11
重載一般是在一個類中進行的,函數(shù)或方法名相同,參數(shù)個數(shù)或類型不同區(qū)分調(diào)用的。
eg:public double sum(int a,int b)(){} ? ? ??public double sum(int a,int b,int c)(){}
public double sum(double a,int b)(){}等等像這樣子的就是重載。
而重寫是指函數(shù)繼承中,子類要對父類的某個方法進行改動時所進行的操作。
eg:父類(如動物)中定義一個方法 輸出“動物會跑”,你可以在子類(如狗)中定義同樣的方法 輸出“狗會跑”將父類覆蓋掉。