封装,继承,多态,重载,重写和泛型详解(附图)-
程序员文章站
2022-05-18 23:11:52
...
刚刚步入软件行业的大门,就要开始枯燥寂寞的码农之旅。这一路走来我们并不会轻松,因为这是一个知识量大更新速度快的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,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
3、重写的方法的返回值必须和被重写的方法的返回一致;
4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
6、静态方法不能被重写为非静态的方法(会编译出错)。
重载的规则:
1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
1、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
泛型:
是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(现在人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。一些强类型编程语言支援泛型,其主要目的是加强类型安全及减少类转换的次数,但一些支持泛型的编程语言只能达到部分目的。
实际应用:
1.继承的实际应用,Dao对象继承父类的crud方法。
2.重写的实际应用, overrider要jre1.6以后才支持。业务层对象继承业务层父类的所有crud方法
3.泛型的实际应用,此为DAO层的父类实现了常用的crud操作
4.重载的实际应用,此为jdbcTemplate模板查询list数据运用
5.封装的实际应用,此例子为封装的页面请求的对象。
6.多态的实际应用,抽象类定义未实现的方法和实现的方法。
7.接口定义形为