10.接口继承多态

我这些学习笔记,记录的都是我自己认为的知识点,可能以后再看的时候还要翻书,但是可以用来定位到准确的书中示例的位置,减少翻书重找的时间,利于自身知识体系的搭建。                   self-transcendence

第10章  接口继承多态

-------------------------------------------------------------------------

10.1类的继承

继承是面向对象开发思想中的一个非常重要的概念,它使整个程序架构具有一定的弹性,可以减少软件开发周期,提高软件的可维护性和扩展性。

继承是基于某个类的扩展,制定一个新类,新类继承父类原有的方法和属性,还可以增加新的方法和属性,也可以重写父类的方法和属性。

继承的关键字是extends

实例化子类的时候,父类的无参构造方法会被自动调用,但有参构造方法并不能被自动调用,只能依赖于super关键字显式地调用父类的构造方法

如果使用finalize()方法对对象进行清理,需要确保子类的finalize()方法最后一个动作是调用父类的finalize()方法,以保证当垃圾回收对象占用内存时,对象的所有部分都能被正常终止

----------------------------------------------------------------------------

10.2 Object

扫描二维码关注公众号,回复: 1844290 查看本文章

在定义类(class)时,在java中所有类都直接或间接的继承了Object类。创建类时如果没有指定他继承的类,那他就继承Object类。

Object类中主要包括clone() finalize() equals() toString()等方法,其中常用的两个方法为equals() toString()

Object类中的getClass() notify() notifyAll() wait()等方法不能被重写,这些方法是final类型。

1. getClass()方法

getClass().getName()

返回对象执行时的class实例,使用此实例调用getName()方法可以取得类的名称

2. toString()方法
在创建类的时候可以重写tostring方法,这样就可以在输出该类的时候输出成想要的字符串

3. equals()方法

自定义类中使用equals方法时,将返回false,因为equals方法默认使用==比较,所以要在自定义类中重写equals方法才能做到真正比较两个对象的内容。

--------------------------------------------------------------------------

10.3 对象类型的转换

例:有子类Parallelogram继承父类Quadrangle

Quadrangle q=new Parallelogram()

将子类对象看作是父类对象被称为“向上转型”。

向上转型是从具体类到抽象类的转换,所以他总是安全的

向下转型是从抽象类到具体类的转换,这样通常会有问题,因此要进行显式类型转换,指明父类对象转换为哪一种类型的子类对象。

-------------------------------------------------------------------------

10.4 使用instanceof操作符判断对象类型

例:有子类Parallelogram继承父类Quadrangle

Quadrangle q=new Parallelogram()

Parallelogram p=new Parallelogram()

If(q instanceof p)  返回true说明qp的实例,就可以执行向下转型的操作

向下转型要判断父类对象是否是子类对象的实例,使用instanceof操作符;instanceof还可以判断一个类是否实现了某个接口,还可以判断一个实例对象是否属于一个类。

---------------------------------------------------------------------
10.5 方法的重载

方法名相同,参数不同,返回值可以不同

参数可以用int... a来表示int[]a,这种参数叫做不定长参数

---------------------------------------------------------------------
10.6 多态

多态可以使程序具有良好的扩展性,可以对所有类对象进行通用的处理。
多态是同一个行为具有多个不同表现形式或形态的能力

多态就是同一个接口,使用不同的实例而执行不同操作

现实中,比如我们按下 F1 键这个动作:

如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;

如果当前在 Word 下弹出的就是 Word 帮助;

Windows 下弹出的就是 Windows 帮助和支持。

同一个事件发生在不同的对象上会产生不同的结果。

--------------------------------------------------------------------
10.7 抽象类与接口

一般来说,父类都被定义为抽象类,需要使用这个父类进行继承与多态处理。多态机制中,并不需要把父类初始化对象,只需要子类对象,所以java设置抽象类不能被实例化。

Abstract是定义抽象类的关键字,方法用就是抽象方法。

只要有一个抽象方法,那么该类一定是抽象类,继承了抽象类,就一定要实现抽象类的抽象方法。

--------------------------------------------------------------------
10.8 接口

接口是抽象类的延伸,他是纯粹的抽象类,所有的方法都没有方法体。

接口用implements引用,接口中的方法必须为pulibcabstract形式,接口中任何字段都默认是staticfinal

接口还可以继承别的接口

猜你喜欢

转载自blog.csdn.net/selftranscendence/article/details/80883870
今日推荐