本周在学习上,我花了一些时间复习了面向对象这一部分的内容,其中重点复习了面向对象的三大特征,继承,封装和多态。下面就简单谈一谈我个人对这三点特性的认知:
首先了解一下常见的四种权限修饰符:
封装:
1.封装的概念:
封装就是通过private权限修饰符对对象中的属性或者方法进行私有修饰,)使相关的对象内容只能在同一个类中调用,如果想要在其他类中使用的话,就需要在private修饰的类中提供由public权限修饰符修饰的set和get方法,然后再其它类中调用相关的set和get方法才可以访问其中的相关内容。相关代码如果图所示:
2.封装的优点:
可以提高代码的安全性,可以使代码不受外部干涉,只能通过由public暴露出来的内容进行调用。好比我们日常生活中的ATM和电线,他们分别保护钱财和线性导体。
继承:
1.继承的概念:
通过extends关键字,在已经存在类的基础上进行扩展,从而产生新的类。已经存在的类称为父类、基类或超类,而新产生的类称为子类或派生类。在子类中,不仅包含父类的属性和方法,还可以增加新的属性和方法。这里可以通过子类和父类的关系与对象和类的关系进项一个对比记忆。类和对象可以通过"对象 is a 类"的语法格式来记忆,而子类和父类可以通过"子类 has a 父类"的语法格式来记忆。相关代码如图所示:
2.继承的优点:
提高代码的复用性,父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了
3.继承的注意事项:
(1)父类private修饰的内容,子类实际上也继承,只是因为封装的特性阻碍了直接调用,但是提供了间接调用的方式,可以间接调用。
(2)父类private修饰的内容,子类也继承过来了。
(3)一个父类可以有多个子类。
(4)一个子类只能有一个直接父类。但是可以间接的继承自其它类。
(5)继承具有传递性:Student --》继承自 Person ---》继承自Object。Object类是所有类的根基父类。所有的类都直接或者间接的继承自Object。
多态:
1.多态的概念:
多态就是多种状态:同一个行为,不同的子类表现出来不同的形态。
多态指的就是同一个方法调用,然后由于对象不同会产生不同的行为通俗的讲就是父类引用指向子类对象。相关代码如图所示:
2.多态的好处:
为了提高代码的扩展性,符合面向对象的设计原则:开闭原则。
开闭原则:指的就是扩展是 开放的,修改是关闭的。
3多态的要素:
多态的要素:
(1)继承: Cat extends Animal ,Pig extends Animal, Dog extends Animal
(2)重写:子类对父类的方法shout()重写
(3) 父类引用指向子类对象: