面向对象这个东西,其实我们一直是不是都没有感觉到自己在用,以后我一定要用用。以前学c#时候认真的看过一次,最近一直研究java。随便再看看。

多态问题:

在java中多态分为(1)编译时多态和(2)运行时多态

(1)编译时多态比较容易理解:其实就是通过方法重载,就是方法的重载,同一个函数名但是可以参数不一样。这就是重载(so easy)

(2)运行时多态:这个是通过方法覆盖实现的,就是子类在继承父类的时候,通过对某个方法的重写,覆盖父类方法。

简单的说:比如我们有个父类A,子类B通过Extends继承了A,C,D也是,我们在方法调用的时候只要用调用A就行了。

(使用父类引用指向子类对象,在调用某一父类中的方法时,不同的子类就会表现出不同的方法结果,这就是多态,有继承才有多态)

作用:扩展性好,我们在新增某个类的时候,只要继承父类,并覆盖父类方法就ok了。一个接口多种实现方式,继承的表现就是多态。

      (应用程序不必对每一个派生类编写一个功能调用,只需要对抽象基类进行处理即可)

我补充一下使用接口的理由:它能使我们创建更加通用的代码,通过针对接口而非具体实现类来编写代码,这样我们的代码可以应用更多地对象类型。

容器:

     我们使用比较多的肯定是List<T> list=new ArrayList<T>,不可否认ArrayList很强大,但是其实java还有好多其他的好东西。

首先要说明一下List是一个接口而已,不能List x=new List();List只是声明了函数,并没有实现。ArrayList是一个继承了List的具体实现类而已。

(1)数组:说到容器,可能要提到数组,算了,暂时就把数组看出是固定了大小的容器(其实它不是容器),然后由于知道数组大小,所以用参数下标即可随机访问,速度应该是最快的 O(1),要注意的一点就是数组的legths是数组的大小而不是数组里面的数据个数。

(2)Collection和Collections的区别

Collection是集合类的顶级接口,它下面还有List和Set两个接口,(接口继承接口)

Collections是集合类的一个工具类,这个类提供了一系列的静态函数,可以用来对集合排序,选取最大值。。。。。。

(3)用图来说明一下关系(还有map,它是和Collection一个级别的,包括hashtable,hashMap。。。。)

(4)迭代器(iterator)

   迭代器是一种设计模式,这他妈也是设计模式。我们知道迭代器是用来选取集合对象的,我们通过迭代器选取对象引用可以直接对对象进行操作。代码我就不贴了。

作用:作为一种设计模式,可以做到不必要知道或者重写代码就可以应用不同类型的容器。

    这个可能无法理解,这么说吧:就是我们可以不必管集合是用什么方式实现的,管他是list还是map,我反正只需要调用迭代器就ok了。其实一般的时候也用不到,可能在你

要改某个程序的集合实现方法的时候用到。

java 小结2 多态问题和容器介绍的更多相关文章

  1. java中实现多态的机制是什么?

    多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次 ...

  2. java 并发多线程 锁的分类概念介绍 多线程下篇(二)

    接下来对锁的概念再次进行深入的介绍 之前反复的提到锁,通常的理解就是,锁---互斥---同步---阻塞 其实这是常用的独占锁(排它锁)的概念,也是一种简单粗暴的解决方案 抗战电影中,经常出现为了阻止日 ...

  3. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  4. 杂项-Java:jar 包与 war 包介绍与区别

    ylbtech-杂项-Java:jar 包与 war 包介绍与区别 1.返回顶部 1. 做Java开发,jar包和war包接触的挺多的,有必要对它们做一个深入的了解,特总结整理如下: 1.jar包的介 ...

  5. Java 继承和多态

                                                        Java  继承和多态 Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因 ...

  6. Java基础之多态和泛型浅析

    Java基础之多态和泛型浅析 一.前言: 楼主看了许多资料后,算是对多态和泛型有了一些浅显的理解,这里做一简单总结 二.什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面 ...

  7. Docker 容器介绍

    Docker 容器介绍 Docker 是一个基于 Go 语言的开源应用容器引擎,它既能实现虚拟化,又可用于将应用服务打包成轻量.可移植的容器,从而可以发布到任何 Linux 平台.除了优秀了沙箱机制外 ...

  8. JUC源码分析-集合篇:并发类容器介绍

    JUC源码分析-集合篇:并发类容器介绍 同步类容器是 线程安全 的,如 Vector.HashTable 等容器的同步功能都是由 Collections.synchronizedMap 等工厂方法去创 ...

  9. Java对象和多态

    Java对象和多态 (面向对象) 面向对象基础 面向对象程序设计(Object Oriented Programming) 对象基于类创建,类相当于一个模板,对象就是根据模板创建出来的实体(就像做月饼 ...

随机推荐

  1. 同样的一句SQL语句在pl/sql 代码块中count 没有数据,但是直接用SQl 执行却可以count 得到结果

    pl/sql 代码块: SELECT count(distinct t2.so_nbr) INTO v_count2 FROM KFGL_YW_STEP_qd t2 WHERE t2.partitio ...

  2. uCGUI窗口操作要点

    uCGUI窗口操作要点 1. 创建一个窗口的时候,会给此窗口发送“创建(WM_CREATE)”消息,从而执行它的回调函数:如果创建窗口的标志带有“可视标志(WM_CF_SHOW)”,那么在后续执行GU ...

  3. 9.MVC框架开发(关于ActionResult的处理)

    1.在Action处理之后,必须有一个返回值,这个返回值必须继承自ActionResult的对象 2.ActionResult,实际就是服务器端响应给客户端的结果 ViewResult(返回视图结果) ...

  4. 洛谷 P1064 金明的预算方案

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...

  5. 实现n皇后问题(回溯法)

    /*======================================== 功能:实现n皇后问题,这里实现4皇后问题 算法:回溯法 ============================= ...

  6. ios App优化

    一. 静态分析(Analyze) 在Xcode菜单栏中点击 ”Product“ -> "Analyze",编译完成后项目工程中可能造成内存泄露的代码就会被标记出来,这样我们就 ...

  7. about mobile web

    http://blog.csdn.net/kavensu/article/details/8722268 http://cavenfeng.iteye.com/blog/1551516 http:// ...

  8. 部分视图调用方法总结(Action 、 RenderAction 、 Partial 、 RenderPartial)

    Action . RenderAction . Partial . RenderPartial 1.Action . RenderAction Action 方法以字符串的形式返回子视图,可以直接被呈 ...

  9. ZOJ 2750 Idiomatic Phrases Game(Dijkstra)

    点我看题目 题意 : 给定一本字典,字典里有很多成语,要求从字典里的第一个成语开始,运用字典里的成语变到最后一个成语,变得过程就是成语接龙,后一个成语的第一个字必须有前一个成语的最后一个字相等,给定的 ...

  10. [状压dp]POJ2686 Traveling by Stagecoach

    题意: m个城市, n张车票, 每张车票$t_i$匹马, 每张车票可以沿某条道路到相邻城市, 花费是路的长度除以马的数量. 求a到b的最小花费, 不能到达输出Impossible $1\le n\le ...