1. 封装的概念
在面向对象中封装是指隐藏对象的属性和实现的细节,仅对外提供公共访问方式,是一种信息隐藏技术,在java/c#中通过关键字private,protected和public实现封装。封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。
封装的好处: 把类的细节与外界隔离起来,从而实现数据项和方法的隐藏。
只允许外部对类作有限的访问,开发者可以改变类内部的工作方式而不用担心会影响到客户端程序员,只要向外部暴露出来的接口不改变,内部代码就可以自由改变,而不对使用该类的程序产生影响。这是隔离性的体现,同时也是实现高内聚,低耦合的最根本的思想之一。
2.继承
在 Java 中子类使用关键词 extend 去继承父类的关系(C#直接:父类)
继承主要用途是将子类存在共性的东西,把它抽取出来放到父类里面,比如将共同拥有的属性和方法抽取出来放到父类里面。
继承的好处:
想要使用这些属性和方法的时候,可以直接去使用父类的,而不需要自己再重新去定义,更大程度的实现代码复用。
我们不需要写很多的冗余的代码,把共性的全部抽到父类,可以直接调用,如果需要个性化自定义子类的方法时,去重写父类的方法即可。
3.多态
多态是指通过指向父类的指针,来调用在不同子类中实现的方法。
多态是和继承一脉相承的,多态存在的需要有三个必要条件:继承、重写、父类引用指向子类对象
例子1:什么是面向对象? 谈谈你对面向对象的理解_魏来码农的博客-CSDN博客_面向对象的理解
个人理解翻译:调用地方的方法名是一样的,但方法返回的是子类的输出而不是父类的。
例子2: Java 多态 ——一个案例 彻底搞懂它 - 江河湖泊 - 博客园
例子理解翻译:多态为何能提高代码可扩展性,复用性呢。上面例子,如果再加上猪这个动物,现在就只加猪相关子类即可,方法名没变、其他动物的代码没变(起码这个文件没有git修改记录)、父类也没变。
方便个人学习,无心侵权。