📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

什么是多态

创建时间2019-02-17最后修改2019-02-17原位置/程序员成长之旅/Java学习/笔记/字数564
目录:程序员成长之旅/Java学习/笔记

通过不同的对象使用相同的方法,而做出不同的回应.就是多态(也称动态绑定) 举个例子,iPhone手机和小米手机都拥有打电话以及发短信的功能,而用iPhone去执行打电话,得到的结果就是iPhone打电话,相对的用小米手机打电话,就是用小米手机去执行打电话. 如何实现一个多态呢,实现多态的三要素就是 继承 重写 和向上转型 看三段代码 public class TelPhone{ public void call(){ System.out.println("用手机打电话"); } public void message(){ System.out.println("用手机发短信"); } }

8 8

1 public

class

TelPhone { 2

public

void

call (){ 3

System . out . println ( "用手机打电话" ); 4 } 5

public

void

message (){ 6

System . out . println ( "用手机发短信" ); 7 } 8 } public class IPone extends TelPhone { @Override public void call(){ System.out.println("用iPhone打电话");; } @Override public void message(){ System.out.println("用iPhone发短信"); } }

11 11

1 public

class

IPone

extends

TelPhone { 2

@Override 3

public

void

call (){ 4

System . out . println ( "用iPhone打电话" );; 5 } 6

@Override 7

public

void

message (){ 8

System . out . println ( "用iPhone发短信" ); 9 } 10 } 11 public class XiaoMi extends TelPhone{ @Override public void call() { System.out.println("用小米打电话"); } @Override public void message() { System.out.println("用小米发短信"); } }

12 12

1 public

class

XiaoMi

extends

TelPhone { 2

@Override 3

public

void

call () { 4

System . out . println ( "用小米打电话" ); 5 } 6 7

@Override 8

public

void

message () { 9

System . out . println ( "用小米发短信" ); 10 } 11 } 12 我们用test.java来测试功能 public class Test { public static void main(String[] args){ TelPhone phone = new TelPhone();//创建TelPhone类型的phone TelPhone useiPhone = new IPone();//创建TelPhone类型的useiPhone并且引用到IPhone TelPhone useXiaoMi= new XiaoMi();//类似 phone.call();//使用TelPhone身份去打电话 phone.message(); useiPhone.call();//使用IPhone身份去打电话 useiPhone.message(); useXiaoMi.call(); useXiaoMi.message(); } }

x 14

1 public

class

Test { 2

public

static

void

main ( String [] args ){ 3

TelPhone

phone

=

new

TelPhone (); //创建TelPhone类型的phone 4

TelPhone

useiPhone

=

new

IPone (); //创建TelPhone类型的useiPhone并且引用到IPhone 5

TelPhone

useXiaoMi

new

XiaoMi (); //类似 6

phone . call (); //使用TelPhone身份去打电话 7

phone . message (); 8

useiPhone . call (); //使用IPhone身份去打电话 9

useiPhone . message (); 10

useXiaoMi . call (); 11

useXiaoMi . message (); 12 } 13 } 14 结果 用手机打电话 用手机发短信 用iPhone打电话 用iPhone发短信 用小米打电话 用小米发短信

完成了简单的多态演示