java多态应用场景_Java多态性的优点及应用

1。面向对象--接口的实际应用--制定标准

Java代码

interface USB

{

public void start();

public void stop();

}

class Computer

{

public static void pugin(USB usb){

usb.start();

System.out.println("**************working********");

usb.stop();

}

}

class Flash implements USB

{

public void start(){

System.out.println("======U盘开始工作===========");

}

public void stop(){

System.out.println("======U盘停止工作===========");

}

}

class Print implements USB

{

public void start(){

System.out.println("======打印机开始工作===========");

}

public void stop(){

System.out.println("======打印机停止工作===========");

}

}

public class Demo5

{

public static void main(String[] args)

{

Computer.pugin(new Flash());//这种调用的方法,还是第一次见

Computer.pugin(new Print());

}

}

用来实例化接口和抽象类的。

这个例子中,USB是一种标准,只有符合这个标准的才能通过USB与电脑相连,而电脑也只认USB。只要你符合这个接口,就可以使用,他不管你是什么设备。

那么就可以这么认为,interface接口 他制定了一个标准,通过这个接口(标准)来让各个部分相连。

而且相对于抽象类而言,接口可以多继承。

2。实例2

public class Employee {

private String name;

public Employee(String name )  {

this.name = name;

}

public String getName() {

return name;

}

public void printName(){}

public void printEarning(){}

}

class Manager extends Employee {

protected double salary;

public Manager( String name, double salary) {

super( name );

this.salary = salary;

}

public void printName(){

System.out.println("Manager: " + getName());

}

pubblic void printEarning(){

System.out.println("        earned $ " + salary);

}

}

class RegularWorker extends Employee {

protected double salary, overtimePay;

public RegularWorker( String name, double salary, double overtimePay){

super( name );

this.salary = salary;

this.overtimePay = overtimePay;

}

public void printName(){

System.out.println("RegularWorker: " + getName());

}

pubblic void printEarning(){

System.out.println("        earned $ " + salary);

}

}

public class PerDepart {

public void printInfo(Employee ref){

ref.printName();

ref.printEarning();

}

public static void main( String args[] ) {

PerDepart perDepart = new PerDepart();

Manager manager = new Manager( "Wang", 5800.00 );

RegularWorker rw = new RegularWorker( "Lee", 2980.00, 270.0);

perDepart.printInfo(manager);

perDepart.printInfo(rw);

}

}

三。实现多态的三个必要条件

1.要有继承

2.要有重写

3.父类引用指向子类对象

四。多态性的好处

1.派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。     2.应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值