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

接口和多态

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类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值