Java封装继承

网友投稿 596 2022-05-29

封装就是把属性都隐藏,为了安全性。比如,你口袋里有100块钱,看做你的属性,别人如果可以直接把钱就拿走,就不安全。

高内聚,就是类的内部数据操作细节由自己完成,不允许外部干涉;低耦合:仅暴露方法给外部使用。

这样说来,属性都要隐藏,也就是要用private来修饰。那么,继承的时候,这些属性都无法继承了。

所以,封装的理念,和继承的理念,是有矛盾的。

这么说对吗?显然是不对的,那么哪里不对呢?关于继承的说法不对。

继承,不管好的坏的,公开的隐藏的,都会全盘继承下来,只是说,有些属性在父类定义为private后,

即使是子类,也无法看到和直接访问。并不是说子类没有继承下来,而是说不能直接查看和使用而已。

而是要通过封装后暴露的方法来访问。所以,封装、和继承是可以配合,是不完全矛盾的。

继承的重点,在于减少冗余的属性和方法的定义。而在继承的基础之上,会衍生出一个大的概念系统:抽象、重写、运行时多态等等。

比如,当定义了一个Animal类时:

package com.exam; public class Animal { private String name; Animal(){ name="Animal"; } public String getName(){ return name; } public void say(){ System.out.println("Animal# my name is "+name); } }

Java的封装和继承

而一个继承类,虽然继承了Animal类,但是想直接访问它的private修饰的属性,那是不行的,编译时就会报错。

而在继承的基础上,又会出现方法重写。出现抽象类。

另外,为了解决加java里面只有单继承的问题,又出现了接口。

从继承这个基本的概念,延伸出了非常多的扩展的概念,而这些扩展的概念都是有非常重要的实战意义。

有人说java是一门非常成熟的工程语言。我非常赞成。

这一套的概念学习下来,你会觉得它是完整的,闭环的,有体系的,能够经得起时间考验的,也就是说,能够长期的存活下来的。

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux之whereis命令
下一篇:单片机补充案例--速度反馈控制LED亮度
相关文章