Java中 接口是如何实现多态的特性的

Java中多态是个很难理解的概念,但同时又是非常重要的概念,Java三大特性(封装、继承、多态)之一,我们从字面上理解,就是一种类型的多种状态,一下通过卖小汽车的例子再次说明什么是多态,其中利用到了接口。

代码实例:

//汽车接口
interface Car{
    //要求 接口中有:汽车名称和售价
    
    String getName();
    int getPrice();
    
}
//宝马类
class BMW implements Car{

    @Override
    public String getName() {
        // TODO Auto-generated method stub
        //return null;
        return "宝马";
    }

    @Override
    public int getPrice() {
        // TODO Auto-generated method stub
        //return 0;
        return 300000;
    }
    
}

//奇瑞QQ
class CheryQQ implements Car{

    @Override
    public String getName() {
        // TODO Auto-generated method stub
        return "奇瑞QQ";
    }

    @Override
    public int getPrice() {
        // TODO Auto-generated method stub
        return 40000;
    }
    
}
//汽车出售店
class CarShop{
    //收入
    private int money=0;
    
    //卖出一部汽车
    public void sellCar(Car car){
        System.out.println("车型:"+car.getName()+"价格:"+car.getPrice());
        //增加卖出车售价的收入
        money+=car.getPrice();
    }
    //售车总收入
    public int getMoney(){
        return money;
    }
}

测试类:

public class jieKouDemo {
    public static void main(String[]args){
        CarShop shop=new CarShop();
        //卖出一辆宝马
        shop.sellCar(new BMW());
        //卖出一辆奇瑞QQ
        shop.sellCar(new CheryQQ());
        
        System.out.println("总收入:"+shop.getMoney());
    }

}

注意事项总结:

继承是多态得以实现的基础。从字面上理解,多态就是一种类型(都是Car类型)表现出来的多种状态(宝马汽车的名称是BMW,售价300000;奇瑞汽车的名称是CheryQQ,售价是40000)。将一个方法调用同这个方法所属的主题(也就是对象或类)关联起来叫做绑定。

绑定分为:前期绑定和后期绑定。

1.前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定。比如static方法和final方法。注意,这里也包括private方法,因为他是隐式final的。

2.后期绑定:在运行时根据对象的类型进行绑定。由调用机制实现,因此又叫做动态绑定,或运行时绑定。除了前期绑定之外的所有方法都属于后期绑定。

 

转载于:https://www.cnblogs.com/1693977889zz/p/8298240.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值