`
zz563143188
  • 浏览: 2264289 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
博客专栏
77fc734c-2f95-3224-beca-6b8da12debc8
编程工具介绍
浏览量:576441
D9710da2-8a00-3ae6-a084-547a11afab81
Spring Mvc实战(...
浏览量:1084554
D3f88135-07de-3968-a0f0-d2f13428c267
项目开发经验
浏览量:1651066
社区版块
存档分类
最新评论

封装,继承,多态,重载,重写和泛型详解(附图)-

阅读更多

       刚刚步入软件行业的大门,就要开始枯燥寂寞的码农之旅。这一路走来我们并不会轻松,因为这是一个知识量大更新速度快的IT行业。码农在学校要学扎实理论知识和跟不上时代的技术,工作后为了生存还得挤出时间学习需要的技术。这就是为什么程序员是世界上最忙碌的人,收入又远不及能说会道的销售人员。
       前面都是说的一些牢骚话不可当真,其实程序员是世界最有智慧的群体。他们必须忍受寂寞面对电脑,写出令自己无比自豪的程序代码,不过有时也修改曾经自豪的代码。
       如今忆是面向对象时代,无论是java程序员还是.net程序员C++程序员都已经面向对象了。在本文的内容前,先为大家讲解一下面向对象。

 

企业级项目实战(带源码)地址:  http://zz563143188.iteye.com/blog/1825168
收集五年的开发资料下载地址:  http://pan.baidu.com/share/home?uk=4076915866&view=share
 

二、什么是面向对象
         面向对象是以功能来划分问题,而不是步骤。

三、 面向对象的 三个特征:
     1. 封装:
                 封装的本质或目的其实程序对信息(数据)的控制力。
                 所以封装是有两个方面:该隐藏的隐藏起来,该暴露的暴露出来。
              封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

     2.继承:
             继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

    3.动态特性
 
   (1)抽象:
             抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

  (2)多态性:
              多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

简要讲解了面向对象,接下来讲解重写、重载、泛型。


重写(覆盖)的规则:
   1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
   2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
   3、重写的方法的返回值必须和被重写的方法的返回一致;
   4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
   5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
   6、静态方法不能被重写为非静态的方法(会编译出错)。
 
重载的规则:
   1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
   2、不能通过访问权限、返回类型、抛出的异常进行重载;
   3、方法的异常类型和数目不会对重载造成影响;
  
泛型:
      是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(现在人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。一些强类型编程语言支援泛型,其主要目的是加强类型安全及减少类转换的次数,但一些支持泛型的编程语言只能达到部分目的。
 

 实际应用:
 截图源代码详解地址  http://zz563143188.iteye.com/blog/1825168
 
1.继承的实际应用,Dao对象继承父类的crud方法。
 
2.重写的实际应用  overrider要jre1.6以后才支持。业务层对象继承业务层父类的所有crud方法
 
3.泛型的实际应用,此为DAO层的父类实现了常用的crud操作
 4.重载的实际应用,此为jdbcTemplate模板查询list数据运用
 
5.封装的实际应用,此例子为封装的页面请求的对象。
 
6.多态的实际应用,抽象类定义未实现的方法和实现的方法。
 
7.接口定义形为
15
6
分享到:
评论
12 楼 ifWhileCaseFor 2014-01-03  
FastStone Capture真是一个好用的截图工具,个人感觉,小巧玲珑、
11 楼 jiating088 2013-06-24  
感觉多态的例子有点问题,多态应该是子类集成父类后,在继承原有父类方法外,还有一些新增加的方法,这种继承新增的现象就是所谓的多态
10 楼 zz563143188 2013-03-28  
tianyulingfeng 写道
朋友,你很不错,加油

用的是QQ
9 楼 zz563143188 2013-03-28  
airball 写道
看这排版,楼主是个思路清晰之人啊。

谢谢夸奖。
8 楼 airball 2013-03-27  
看这排版,楼主是个思路清晰之人啊。
7 楼 zz563143188 2013-03-27  
apprentice 写道
能告诉我一下这个画图工具的名字吗?

qq的
6 楼 apprentice 2013-03-26  
嗯嗯,我刚试了试,是有这么一个功能,蛮实用的,谢谢哈
5 楼 shmily2038 2013-03-26  
apprentice 写道
能告诉我一下这个画图工具的名字吗?

呵呵,我猜是QQ截屏处理的,并没有什么画图工具
4 楼 tianyulingfeng 2013-03-26  
朋友,你很不错,加油
3 楼 apprentice 2013-03-26  
能告诉我一下这个画图工具的名字吗?
2 楼 zz563143188 2013-03-26  
cyruscript 写道
封装这概念讲得不够透。封装的本质或目的其实程序对信息(数据)的控制力。
所以封装是有两个方面:该隐藏的隐藏起来,该暴露的暴露出来。

好的,谢谢建议,我一会将你的内容补充上去。
1 楼 cyruscript 2013-03-26  
封装这概念讲得不够透。封装的本质或目的其实程序对信息(数据)的控制力。
所以封装是有两个方面:该隐藏的隐藏起来,该暴露的暴露出来。

相关推荐

Global site tag (gtag.js) - Google Analytics