本文主要是介绍第五章 接口函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
接口概念:
- 是Java语言中一种引用类型,是方法的集合,接口内部主要是封装了方法,包含抽象方法,默认方法,静态方法;
- 接口不能创建对象,但是可以被实现implements
- 类和接口的关系是实现关系,其中非抽象子类实现接口;
- 必须重写接口中所有抽象方法
- 继承了接口的默认方法,既可以直接调用,也可以重写;
- 静态方法只能被接口调用,无法重写;
- 接口多实现:
- 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
格式: - public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB { // 覆盖重写所有抽象方法
} - 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
- 如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。
- 如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。
- 一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法
- 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
- 接口特点:
- 没有构造方法,不能创建对象
- 没有静态代码块;
- 可以定义常量,其中值不可以改变,默认使用public static final修饰
-
final关键字
-
用于修饰不可更改内容,用于修饰类 方法和变量
/* final关键字代表最终、不可改变的。常见四种用法: 1. 可以用来修饰一个类 2. 可以用来修饰一个方法 3. 还可以用来修饰一个局部变量 4. 还可以用来修饰一个成员变量*/ public class Demo01Final {public static void main(String[] args) {int num1 = 10;System.out.println(num1); // 10num1 = 20;System.out.println(num1); // 20// 一旦使用final用来修饰局部变量,那么这个变量就不能进行更改。// “一次赋值,终生不变”final int num2 = 200;final int num3=300;System.out.println(num2); // 200// num2 = 250; // 错误写法!不能改变! // num2 = 200; // 错误写法!// 正确写法!只要保证有唯一一次赋值即可final int num3;num3 = 30;// 对于基本类型来说,不可变说的是变量当中的数据不可改变// 对于引用类型来说,不可变说的是变量当中的地址值不可改变Student stu1 = new Student("赵丽颖");System.out.println(stu1);System.out.println(stu1.getName()); // 赵丽颖stu1 = new Student("霍建华");System.out.println(stu1);System.out.println(stu1.getName()); // 霍建华System.out.println("===============");final Student stu2 = new Student("高圆圆");// 错误写法!final的引用类型变量,其中的地址不可改变 // stu2 = new Student("赵又廷");System.out.println(stu2.getName()); // 高圆圆//局部变量引用类型被final修饰后,只能指向一个对象,地址不能再次更改,但是不影响对象内部成员变量值得修改,代码如下:stu2.setName("高圆圆圆圆圆圆");System.out.println(stu2.getName()); // 高圆圆圆圆圆圆}}
-
-
匿名内部类
- 本质是一个待具体实现的父类或者父类接口的匿名的子类对象,
- 前提匿名内部类必须继承一个父类或者实现一个父接口;
这篇关于第五章 接口函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!