java 接口 多态_java基础之接口和多态

本文介绍了Java中的接口和多态。接口作为扩展行为的定义,包含常量和抽象方法,不能实例化,通过implements与类建立关系。多态则体现了事物的多种状态,主要表现为继承、方法重写和父类引用指向子类对象。多态带来方法调用的灵活性,但也限制了对子类特有方法的直接访问,可通过instanceof判断并向下转型来解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口和多态

1.接口的概述:

描述的是事物的一种扩展行为

定义接口的格式:

使用关键字 interface, 将定义类中的class换成interface即可

public interface 接口名{

// 成员变量(常量)如果是常量,一般习惯写成大写

// 成员方法(抽象方法)

}

接口中的成员特点:

成员变量: 默认被public static final修饰了,不管写不写都有

成员方法: 默认被public abstract 修饰了, 不管写不写都有

如何使用接口?

特点: 接口不能被new,不能被实例化

接口的使用方式, 研究类和接口之间的关系:

接口与类之间是实现关系, 使用关键字 implements

格式: public class 类A implements 接口名A{

覆盖接口中的所有抽象方法, 除非这个类也是抽象类.

}

1> 一个类实现一个接口

格式: public class 类A implements 接口A{....}

2> 一个类实现多个接口

格式: public class 类A implements 接口A, 接口B{....}

3> 一个类继承另外一个类, 实现多个接口

格式: public class 类A extends 类B implements 接口A,接口B{...}

福利:

面试题一:

interface InterA{

void method();

}

interface InterB{

void method();

}

class MyClass implements InterA, InterB{

// 这里需要实现几个方法? 实现一个即可.

public void method(){

}

}

面试题二:

interface InterA{

void method();

}

class Fu{

public void method(){}

}

class Zi extends Fu implements InterA{

// 需要实现方法吗? 答: 不需要实现方法了, 因为已经从父类中继承过来了对应的method方法

}

2. 多态: 体现的是事物的多种状态 (强调的是事物的行为)

多态的表现形式

1> 必须要有继承关系, 一般会伴随着方法重写.

2> 父类的引用指向子类的对象.

格式:

父类类型(抽象类) 变量名 = new 子类类型();

接口 接口名 = new 实现类();

使用:

父类的引用.方法名();

编译的时候看父类, 运行的时候看子类;

如果父类没有就编译报错

3. 多态的好处:

接口的多态表现形式:

1> 需要有实现关系;

2> 接口变量类型指向实现类对象;

代码格式:

接口 接口名 = 实现类对象;

多态的四种使用形式:

1> 类(抽象类)作为方法的参数传递, 传递的是该类的子类对象

2> 类(抽象类)作为方法的返回值, 返回的是该类的子类对象

3> 接口作为方法的参数, 传递的是实现类对象

4> 接口作为方法的返回值, 返回的是实现类对象.

在多态的格式下面,使用内容的特点:

成员方法:

编译看左边, 运行看右边;

成员变量:

编译看左边, 运行看左边

多态的好处:

1> 可以作为方法的参数进行传递,无限扩展子类

2> 可以作为方法的返回值.

4. 缺点: 不能调用子类特有的方法, 因为编译看左边,运行看右边

如何调用子类特有方法:

向上转型: 小的数据类型转换成大的数据类型(多态体现)

向下转型: 大的类型转换成小的类型, 但是有风险

如果解决向下转型的风险:

需要使用到关键字 instanceof; 判断该引用是否是该类的实例对象.

使用格式: 引用类型 instanceof 类名称;// 返回值类型是一个boolean类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值