zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
    jQuery1.9.1针对checkbox的调整
    管理 sendmail 的邮件队列
    将以管理员方式运行cmd运行方式放到win7任务栏
    转 git操作小结
    [转]前端CSS规范整理
    jQuery 1.9不支持$.browser 怎么判断浏览器类型和版本
    js闭包陷阱问题
    关于NGINX下开启PHP-FPM 输出PHP错误日志的设置(已解决)
    PHP中cURL错误号对照[转]
  • 原文地址:https://www.cnblogs.com/hellowzd/p/9722774.html
Copyright © 2011-2022 走看看