Java编程思想阅读笔记(面向对象)

继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承的特性
子类拥有父类非private的属性,方法
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。
继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在  java.lang  包中,所以不需要  import )祖先类。

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。


is-a(是一个的关系):继承只覆盖基类的方法,不添加新的方法,具有完全相同的接口
is-like-a(向是一个的关系):继承基类所有的方法,且包含有基类没有的方法

多态
多态,是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,可以通过相同的方式予以调用。

多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作
多态的优点
消除类型之间的耦合关系,可替换性,可扩充性,接口性,灵活性,简化性
多态存在的三个必要条件: 继承,重写,父类引用指向子类对象

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

Java静态绑定与动态绑定
对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定.
java语言中,如果没有添加任何关键字,则方法默认就是虚方法(动态绑定),任何子类都可以重写它。
区别如下
1,静态绑定在编译时期,动态绑定在运行时期。
2,静态绑定只用到类型信息,方法的解析根据引用变量的类型决定,而动态绑定则根据实际引用的的对象决定
3,在java中,private static 和 final 方法都是静态绑定,只有虚方法才是动态绑定
4,多态是通过动态绑定实现的。

动态绑定是如何实现的?
一个对象的多态方法的地址将被存储在该对象的方法表(method table)里面,在运行时期,调用多态方法的时候,JVM会在此表中搜索方法的名字,从而获取方法的地址。方法表里包含方法的名字和对应的地址(注意,这个地址是动态绑定的)。这个方法表对所有属于这个类的对象而言,都是一样的,所以它会存储在Class对象中。
动态绑定的过程:
虚拟机提取对象的实际类型的方法表;
虚拟机搜索方法签名;
调用方法

封装
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段

封装的优点
1. 良好的封装能够减少耦合。
2. 类内部的结构可以自由修改。
3. 可以对成员变量进行更精确的控制。
4. 隐藏信息,实现细节。


猜你喜欢

转载自blog.csdn.net/u010391342/article/details/79796217