Java基础 -- 抽象、接口、多态

mac2025-04-09  4

文章目录

一、抽象1. 抽象方法2. 抽象类3. 抽象类的继承4. 抽象类的意义 二、接口1. 定义2. 接口的实现3. 接口的继承 三、多态1. 定义2. 多态的意义3. 使用多态实现思路4. 向上造型5. 强制转型6. instanceof 关键字6.1 用法6.2 作用

一、抽象

1. 抽象方法

由abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法体实现,用一个分号结尾。

2. 抽象类

一个类中如果包含抽象方法,该类应该用 abstract 关键字声明为抽象类。 如果一个类继承了抽象类,必须重写其抽象方法(除非该类也声明为抽象类)。

抽象类不可以实例化即使一个类中没有抽象方法,也可以将其定义为抽象类abstract 和 final 关键字不可以同时用于修饰一个类,因为 final 关键字使得类不可继承,而 abstract 修饰的类如果不可以继承将没有任何意义。

3. 抽象类的继承

一个类继承抽象类后,必须重写其抽象方法,不同的子类可以有不同的实现。

4. 抽象类的意义

为其子类提供一个公共的类型;封装子类中的重复内容(成员变量和方法);定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。

二、接口

1. 定义

接口可以看成是特殊的抽象类,即只包含有抽象方法的抽象类。

2. 接口的实现

一个类可以通过 implements 关键字“实现”接口,一个类实现了某个接口后必须实现该接口中定义的所有方法。 与继承不同,一个类可以实现多个接口,实现的接口直接用逗号分隔。当然,该类需要实现这些接口中定义的所有方法。 接口可以作为一种类型声明变量,一个接口类型的变量可以引用实现了该接口的类的对象,通过该变量可以调用该接口中定义的方法(具体的实现类提供了方法的实现)。

3. 接口的继承

接口间可以存在继承关系,一个接口可以通过extends关键字继承另外一个接口。子接口继承了父接口中定义的所有方法。

三、多态

1. 定义

多态是同一个行为具有多个不同表现形式或形态的能力。在程序中表现为同一个引用类型,使用不同的实例而执行不同操作,即父类引用,子类对象。

2. 多态的意义

一个类型的引用在指向不同的对象时会有不同的实现 同样一个对象,造型成不同的类型时,会有不同的功能

3. 使用多态实现思路

编写父类编写子类,子类重写父类方法运行时,使用父类的类型,子类的对象

实现多态的两个要素:方法重写、使用父类类型。

4. 向上造型

一个类的对象可以向上造型的类型有:

父类的类型其实现的接口类型

Java编译器根据类型检查调用方法是否匹配。

5. 强制转型

可以通过强制转换将父类型变量转换为子类型变量,前提是该变量指向的对象确实是该子类类型。也可通过强制转换将变量转换为某种接口类型,前提是该变量指向的对象确实实现了某接口。

如果在强制转换过程中出现违背了上述两个前提,将会抛出 ClassCastException 。

6. instanceof 关键字

6.1 用法

对象 instanceof 类或接口

6.2 作用

该关键字用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false。

最新回复(0)