【JAVA进阶篇】接口和多态的深刻理解

接口

接口的概述和生活举例

在这里插入图片描述

接口定义的基本格式

接口就是多个类的公共规范。
接口是一种引用数据类型,最重要的内容就是其中的:抽象方法

如何定义一个接口的格式:

public interface 接口名称{
    
     
 	//接口内容
 }

备注:换成了关键字interface之后,编译生成的字节码文件仍然是:java–>.class。
如果是Java7,那么接口中可以包含的内容有:
1.常量
2.抽象方法
如果是Java8,还可以额外包含有:
3.默认方法
4.静态方法
如果是JavaT9,还可以额外包含有:
5.私有方法

接口的抽象方法定义


/*在任何版本的Java中,接口都能定义抽象方法。格式:
public abstract 返回值类型 方法名称(参数列表);
注意事项:
1接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract
这两个关键字修饰符,可以选择性地省略。
3.方法的三要素,可以随意定义。*/

public interface MyInterfaceAbstract{
    
    

	//这是一个抽象方法
	public abstract void methodAbs1();
	
	//这也是抽象方法
	abstract void methodAbs2();
	
	//这也是抽象方法
	public void methodAbs3();
	
	//这也是抽象方法 
	void methodAbs4();
}

接口的抽象方法使用

在这里插入图片描述

实现类可以理解为继承中的子类,使用方法和抽象方法基本上一样的

举例配合理解:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

接口的默认方法定义

在这里插入图片描述

例如:当在接口中新添一个抽象方法,那么就必须要在后面的实现类中再次写入重写覆盖,而接口的默认方法不用。

接口的默认方法使用

1.接口的默认方法,可以通过接口实现类对象,直接调用。
2.接口的默认方法,也可以被接口实现类进行覆盖重写。

举例配合理解:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接口的静态方法定义与使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接口的私有方法定义

在这里插入图片描述

接口的私有方法使用

注意:cc 和 ff 只能被本类访问
在这里插入图片描述
在这里插入图片描述

接口的常量定义和使用

在这里插入图片描述
在这里插入图片描述
使用方式:直接通过接口名.常量名

接口的内容小结

[]代表可省略的关键字
在这里插入图片描述

特别注意:一个类可以实现多个接口;extends和implements可以共存,extends在前,implements在后;使用接口写代码的时候,可以使用多态(父亲类型引用指向子类型对象)。

继承父类并实现多个接口

在这里插入图片描述

如果想要继承父类也实现接口
格式 public class Zi extends Fu implements 接口名{}
extends在前,implements在后

接口与接口之间的多继承

在这里插入图片描述
举例配合理解:
在这里插入图片描述
在这里插入图片描述

接口在开发中的作用

总结一句话:三个字"解耦合"
面向接口编程,可以降低程序的耦合度,提高程序的扩展力。符合OCP开发原则。接口的使用离不开多态机制。(接口+多态才可以达到降低耦合度。)

接口可以解耦合,解开的是谁和谁的耦!!!
任何一个接口都有调用者和实现者。
接口可以将调用者和实现者解耦合。
调用者面向接口调用。
实现者面向接口编写实现。
以后进行大项目的开发,一般都是将项目分离成一个模块一个模块的,模块和模块之间采用接口衔接。降低耦合度。

多态

在这里插入图片描述

多态的格式与使用

在这里插入图片描述
举例配合理解:
在这里插入图片描述
在这里插入图片描述

多态中成员变量访问特点

在这里插入图片描述
在这里插入图片描述
举例配合理解:
在这里插入图片描述
在这里插入图片描述

多态中成员方法的使用特点

在这里插入图片描述
编译:只要它不出红线,就是编译通过,和继承中访问特点一样
编译看左边:等号左边是谁就用谁;例如是Fu,那么就去Fu里面找这个方法(变量),如果找到,编译通过,不会报错。
运行看右边:编译通过后,运行看右边new的谁就用谁,例如:new Zi,那么就去Zi里面找这个方法,如果有就用,没有则向上找。
运行还看左边:编译通过后,运行看左边,等号左边是谁就用谁,例如:Zi aa=new Zi,那么就去Zi里面找这个方法,如果有就用,没有则向上找。

举例配合理解:
在这里插入图片描述
在这里插入图片描述

多态的好处

在这里插入图片描述

对象的向上转型

在这里插入图片描述
对象的向上转型就是父类引用指向子类对象,其实就是多态写法,就是向上转型。

对象的向下转型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

instanceof关键字进行类型判断

在这里插入图片描述
在这里插入图片描述

笔记本USB接口案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/YOU__FEI/article/details/126231821