博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中 接口是如何实现多态的特性的
阅读量:5971 次
发布时间:2019-06-19

本文共 1685 字,大约阅读时间需要 5 分钟。

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;    }    }//奇瑞QQclass 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

你可能感兴趣的文章
项目开发中关于jquery中出现问题小结(textarea,disabled,关键字等)
查看>>
neutron DVR
查看>>
System.Transactions事务超时设置
查看>>
Python 之协程
查看>>
机房收费系统重构(三)—工厂+反射+DAL
查看>>
Linux 中执行命令
查看>>
js中用到的正则表达式
查看>>
和的java程序
查看>>
win7/IE8无法加载QCbin的插件
查看>>
SQL Server用户自定义函数
查看>>
day3:编码,基本数据类型操作,字符串的操作
查看>>
Ajax监测开始执行及结束执行
查看>>
iOS逆向之iOSOpenDev
查看>>
meta详解
查看>>
Android视频压缩并且上传
查看>>
IFE-16 addEventHandler跨浏览器实现事件绑定
查看>>
Cmake中的find_package功能
查看>>
学习Cassandra资料的一些整理
查看>>
windows cmd执行git log命令中文显示乱码
查看>>
【2019-05-31】生活仪式
查看>>