科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道面向对象中的封装、继承 、多态

面向对象中的封装、继承 、多态

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

面向对象中的封装、继承 、多态

作者:csdn 来源:csdn 2009年12月17日

关键字: 问答 JavaSE java

  • 评论
  • 分享微博
  • 分享邮件

 面向对象中的封装、继承 、多态

关于面向对象的三个基本特征: 封装、继承、多态


上面资料截取自 link

由于文章比较抽象,所以发个帖子跟大家讨论一下....

封装是最容易理解的,有以下几种解释方法:
1. 封装就像你建一个类,然后把这个类的属性和方法定义在一起,同时对这些属性和方法予以“public  ,private,protected“等。

2. 该包的包,该漏的漏

3. 就是对数据的隐藏  ,外部用户只需要关心该类的功能和对象,不需要关心具体的实现过程和数据,这是面向对象里面一个很重要的概念

4 . 就像电视,你不需要知道它的内部是由哪些零件组成、如何工作的所以把它们封装起来了,你只知道用遥控器来控制就好
面向对象编程三大思想之一(封装、继承、多态)

(电视机的内部可以理解为class 零件可以理解为 内部function )

内容引用: link

关于继承和多态:

个人理解 继承 的概念,就像是电视 和 DVD ,各自都有遥控器,但用起来很不方便,于是你把两个遥控器拆掉,自己做了一个万能遥控器,于是这个新遥控器就可以说是继承了电视 ( class TV ) 和DVD ( class DVD ) (组合..)

如上图所示,因为继承的范围包含了很多的概念,本人肤浅的理解如此,希望大家一起讨论剩余的概念分支:

继承,泛化和聚合, 多态,覆盖和重载, 如果概念过泛,请至少讲明白 接口 和 虚函数 以及 虚类 ...

 

 

继承 的概念,就像是电视 和 DVD ,各自都有遥控器,但用起来很不方便,于是你把两个遥控器拆掉,自己做了一个万能遥控器,于是这个新遥控器就可以说是继承了电视 ( class TV ) 和DVD ( class DVD ) (组合..)
你这样理解就不符合面向对象的设计原则了,应该说电视和DVD都要遥控器,但里面的按键不同,功能也有不同,但是它们都是用来遥控的,所以我抽象出一个抽象父类,抽象的功能就是遥控,而电视的遥控器和DVD的遥控器就是继承了抽象父类的遥控功能,至于怎么遥控由具体的子类来实现,这才是继承的思想,
继承 的概念,就像是电视 和 DVD ,各自都有遥控器,但用起来很不方便,于是你把两个遥控器拆掉,自己做了一个万能遥控器,于是这个新遥控器就可以说是继承了电视 ( class TV ) 和DVD ( class DVD ) (组合..)
你这样理解就不符合面向对象的设计原则了,应该说电视和DVD都要遥控器,但里面的按键不同,功能也有不同,但是它们都是用来遥控的,所以我抽象出一个抽象父类,抽象的功能就是遥控,而电视的遥控器和DVD的遥控器就是继承了抽象父类的遥控功能,至于怎么遥控由具体的子类来实现,这才是继承的思想
 

至于多态,个人理解,在面向对象的设计原则上要求依赖于抽象,而多态就是抽象在面对不同的具体实现有不同的处理方式,比如定义了一个接口Comparable,拥有比较的功能,而自定义的Num类和XString类实现了这个接口,Num类实现的Comparable是比较数字类型的大小,而XString类实现Comparable是为了实现字符串的自然序大小的比较,而我们定义了
Comparable var = new Num();通过var调用比较方法是比较数字大小。
而var = new XString();通过var调用比较方法是比较字符串自然序大小。
对于var来说这就是多态,即通过同一个变量指向不同的实现类而实现了不同的功能。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章