一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

2020-06-19 11:22jingxian JAVA教程

下面小編就為大家?guī)硪黄獪\談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

thinking in java3中的多態(tài)

People are often confused by other, non-object-oriented features of Java, like method overloading, which are sometimes presented as object-oriented. Don't be fooled: If it isn't late binding, it isn't polymorphism

按文面翻譯

人們總是被java的另一種非面向?qū)ο蟮奶匦运Щ?就像方法重載,有時(shí)候它以面向?qū)ο蠖嬖?請(qǐng)不要犯傻,如果沒有后期綁定(也就是運(yùn)行期的動(dòng)態(tài)綁定),它就不是多態(tài).

所以,這段話要表達(dá)的意思就是說,多態(tài)要有動(dòng)態(tài)綁定,否則就不是多態(tài),方法重載也不是多態(tài)(因?yàn)榉椒ㄖ剌d是編譯期決定好的,沒有后期也就是運(yùn)行期的動(dòng)態(tài)綁定)

當(dāng)滿足這三個(gè)條件 1.有繼承  2. 有重寫  3. 要有父類引用指向子類對(duì)象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<span style="font-size:14px;">
 
例:
public class Address {
private String name;
public Address(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
 
定義基類(抽象類):
public abstract class Vehicle {
abstract void go(Address address);
}
 
Car對(duì)于基類的實(shí)現(xiàn):
public class Car extends Vehicle{
@Override
public void go(Address address){
System.out.println("Car to " + address.getName());
}
}
 
Plane對(duì)于基類的實(shí)現(xiàn):
public class Plane extends Vehicle{
@Override
void go(Address address) {
System.out.println("Plane to " + address.getName());
}
}
 
 
Driver中多態(tài):
public void drive(Vehicle v){ ///多態(tài),父類引用指向子類對(duì)象,實(shí)際傳過來的是抽象類Vehicle的子類,或者實(shí)現(xiàn)類,然后編譯器會(huì)根據(jù)具體實(shí)現(xiàn)類,來找實(shí)現(xiàn)方法。
v.go(new Address("杭州(abstract)")); ///此方法在具體的實(shí)現(xiàn)中被重寫
}
 
Test:
public static void main(String[] args) {
Driver d = new Driver();
d.drive(new Plane()); //實(shí)際是Plane對(duì)象,則編譯器就會(huì)找到Plane中,對(duì)go的實(shí)現(xiàn)
d.drive(new Car()); //實(shí)際是Car對(duì)象,則編譯器就會(huì)找到Plane中,對(duì)go的實(shí)現(xiàn)
}
 
輸出結(jié)果:
Plane to 杭州(abstract)
Car to 杭州(abstract)
 
</span>

多態(tài):就是指相同的事物的不同狀態(tài),比如:水。水可以有三種狀態(tài):

氣體、液體和固體。那么在JAVA中的多態(tài)也可以理解成這個(gè)意思,就是:

將父對(duì)象設(shè)置成為和一個(gè)或多個(gè)它的子對(duì)象相等的技術(shù),

比如Parent=Child;

多態(tài)性使得能夠利用同一類(父類)引用不同類的對(duì)象,

以及根據(jù)所引用對(duì)象的不同,以不同的方式執(zhí)行相同的操作。

多態(tài)實(shí)現(xiàn)包括兩種方式:重載和重寫

例如:Animal a = new Tiger(); 這是一個(gè)老話題了,呵呵……

父類引用指向子類對(duì)象,Animal類中包含一個(gè)eat()方法,而Tiger類繼承自

Animal類,如果子類重寫了父類的eat()方法,則調(diào)用的時(shí)候,就可以按照子類

的形式調(diào)用,本質(zhì)上是父類的方法,但是子類重寫之后,就成了另一種方式,這就是多態(tài)。

以上就是小編為大家?guī)淼臏\談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面的全部內(nèi)容了,希望對(duì)大家有所幫助,多多支持服務(wù)器之家~

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品一区二区三区在线观看 | 国产精品 视频一区 二区三区 | 日韩精品 欧美 | 国产欧美va欧美va香蕉在线观 | 亚洲国产AV无码综合在线 | 国模孕妇季玥全部人体写真 | 操男孩| 免费片在线观看高清 | 国产青色 | 欧美人做人爱a全程免费 | 3d动漫美女物被遭强视频 | 亚洲免费在线观看 | 柔术一级毛片 | 91精品婷婷国产综合久久8 | 亚洲男男video | 男女福利视频 | 欧美精品一区二区在线观看播放 | 四虎影院精品在线观看 | 国产精品麻豆免费版 | 国产欧美日韩成人 | 欧美性理论片在线观看片免费 | 久久国内精品 | 九九久久国产精品大片 | 无码人妻99久久密AV | 欧美精品一区二区三区免费 | 欧美日韩成人在线 | 欧美四级无删版影片 | 描写细腻的高h肉 | 亚洲欧美久久婷婷爱综合一区天堂 | 国产精品一区二区三 | 暖暖的韩国免费观看 | 大学生宿舍飞机china free | 欧美日韩国产成人综合在线 | 亚洲国产精品一区二区三区久久 | 激情综合 | 成人免费国产欧美日韩你懂的 | 交换性关系中文字幕6 | 思思玖玖玖在线精品视频 | 国产精品久久久久久久福利院 | 国产欧美又粗又猛又爽老 | 国产精品自在欧美一区 |