作者DavyBlue (ArssertionError)
看板java
标题Re: [问题] 观念问题-多型和多载
时间Sat Mar 24 09:38:16 2007
你所提到的两个例子都是多载
另外 顺带一提
多载的限制在於 方法名称相同 引数不同
可以是不同数量 不同型别 不同顺序都可
只要符合以上条件 就算是多载
多载主要是让我们在撰写程式时可针对各种不同之传入引数做出不同的行为
而所谓的多型 是一种程式技巧
利用自动转型来以父类别呼叫子类别覆写後的方法
最常用在父类别为介面时
子类别将被强制覆写父类别的抽象方法(除非子类别也为介面或抽象类别)
在swing awt中都大量使用多型
如下例
interface A {
void Amethod();
}
class B implements A{
public void Amethod(){
//more code here
}
}
如果此时要从C存取B中的Amethod()
可以有两种写法
class C {
public static void main(String[] args){
B b = new B();
b.Amethod();//这是一般的写法
A a = new B();
a.Amethod();//这是多型的写法
}
}
在collection的使用中也有人很爱用多型
如List a = new ArrayList();
Queue q = new LinkedList();等等
另外 在使用多型时要注意
父类别只可呼叫子类别覆写之方法或父类别自己的方法
如果呼叫父类别没有的方法
编译时期将会出现cannot find symbol的错误
以上 有问题再mail给我
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.113.80.145
※ 编辑: DavyBlue 来自: 59.113.80.77 (03/24 18:37)