封装,继承,多态,重载,重写和泛型详解(附图)
刚刚步⼊软件⾏业的⼤门,就要开始枯燥寂寞的码农之旅。这⼀路⾛来我们并不会轻松,因为这是⼀个知识量⼤更新速度快的IT⾏业。码农在学校要学扎实理论知识和跟不上时代的技术,⼯作后为了⽣存还得挤出时间学习需要的技术。这就是为什么程序员是世界上最忙碌的⼈,收⼊⼜远不及能说会道的销售⼈员。
前⾯都是说的⼀些牢骚话不可当真,其实程序员是世界最有智慧的体。他们必须忍受寂寞⾯对电脑,写出令⾃⼰⽆⽐⾃豪的程序代码,不过有时也修改曾经⾃豪的代码。
如今忆是⾯向对象时代,⽆论是java程序员还是程序员C++程序员都已经⾯向对象了。在本⽂的内容前,先为⼤家讲解⼀下⾯向对象。
企业级项⽬实战(带源码)地址:
收集五年的开发资料下载地址:
⼆、什么是⾯向对象⾯向对象是以功能来划分问题,⽽不是步骤。三、⾯向对象的三个特征: 1. 封装:java重写和重载的区别
封装的本质或⽬的其实程序对信息(数据)的控制⼒。
所以封装是有两个⽅⾯:该隐藏的隐藏起来,该暴露的暴露出来。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界⾯。⾯向对象计算始于这个基本概念,即现实世界可以被描绘成⼀系列完全⾃治、封装的对象,这些对象通过⼀个受保护的接⼝访问其他对象。
2.继承:
继承是⼀种联结类的层次模型,并且允许和⿎励类的重⽤,它提供了⼀种明确表述共性的⽅法。对象的⼀个新类可以从现有的类中派⽣,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派⽣类(⼦类),⽽原始类称为新类的基类(⽗类)。派⽣类可以从它的基类那⾥继承⽅法和实例变量,并且类可以修改或增加新的⽅法使之更适合特殊的需要。
3.动态特性
(1)抽象:
抽象就是忽略⼀个主题中与当前⽬标⽆关的那些⽅⾯,以便更充分地注意与当前⽬标有关的⽅⾯。抽象并不打算了解全部问题,⽽只是选择其中的⼀部分,暂时不⽤部分细节。抽象包括两个⽅⾯,⼀是过程抽象,⼆是数据抽象。
(2)多态性:
多态性是指允许不同类的对象对同⼀消息作出响应。多态性包括参数化多态性和包含多态性。多态性语⾔具有灵活、抽象、⾏为共享、代码共享的优势,很好的解决了应⽤程序函数同名问题。
简要讲解了⾯向对象,接下来讲解重写、重载、泛型。
重写(覆盖)的规则: 1、重写⽅法的参数列表必须完全与被重写的⽅法的相同,否则不能称其为重写⽽是重载. 2、重写⽅法的访问修饰符⼀定要⼤于被重写⽅法的访问修饰符(public>protected>default>private)。 3、重写的⽅法的返回值必须和被重写的⽅法的返回⼀致;4、重写的⽅法所抛出的异常必须和被重写⽅法的所抛出的异常⼀致,或者是其⼦类; 5、被重写的⽅法不能为private,否则在其⼦类中只是新定义了⼀个⽅法,并没有对其进⾏重写。
6、静态⽅法不能被重写为⾮静态的⽅法(会编译出错)。
重载的规则: 1、在使⽤重载时只能通过相同的⽅法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不⼀样); 2、不能通过访问权限、返回类型、抛出的异常进⾏重载; 3、⽅法的异常类型和数⽬不会对重载造成影响;
泛型:
是⼀种特殊的类型,它把指定类型的⼯作推迟到客户端代码声明并实例化类或⽅法的时候进⾏。在程序编码中⼀些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)在程序编码中⼀些包含参数的类。其参数可以代表类或对象等等。(现在⼈们⼤多把这称作模板)不论使⽤哪个定义,泛型的参数在真正使⽤泛型时都必须作出指明。⼀些强类型编程语⾔⽀援泛型,其主要⽬的是加强类型安全及减少类转换的次数,但⼀些⽀持泛型的编程语⾔只能达到部分⽬的。
实际应⽤:
演⽰项⽬源码下载地址
截图源代码详解地址:
1.继承的实际应⽤,Dao对象继承⽗类的crud⽅法。
2.重写的实际应⽤, overrider要jre1.6以后才⽀持。业务层对象继承业务层⽗类的所有crud⽅法
3.泛型的实际应⽤,此为DAO层的⽗类实现了常⽤的crud操作
4.重载的实际应⽤,此为jdbcTemplate模板查询list数据运⽤
5.封装的实际应⽤,此例⼦为封装的页⾯请求的对象。
6.多态的实际应⽤,抽象类定义未实现的⽅法和实现的⽅法。
7.接⼝定义形为
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论