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、付费专栏及课程。

余额充值