final关键字,代码块,接口

final关键字,代码块,接口

final 关键字

什么是final关键字

final代表最终的意思.可以修饰类,方法,变量

特点:

修饰类: 不能被继承

不想让别人对被修饰的类进行拓展功能

修饰方法: 方法不能被重写

修饰变量:

  1. 基本数据类型的变量: 修饰后值不能被改变,一般用与定义常量

    1.1常量的命名规范: 如果是一个单词,所有字母大写,如果是多个单词,所有字母大写,并把单词与单词之间用_分开

  2. 引用数据类型的变量: 修饰后地址值不能被改变,就是说不能给把别的变量地址给这个变量,也不能为这个变量重新开辟空间.但是,空间里存放的值,是可以改变的.

接口

接口介绍

什么是接口?

接口的本质也是类,它也是抽象类,它比抽象类还抽象,如果一个类中所有的方法都是抽象方法,这个类就可以定义成接口

作用:接口用来定义类具有哪些功能

接口的作用

1.用来定义规范类

2.用来做程序功能的拓展,比如说笔记本的触摸板,你用着不舒服,你可以通过usb接口,加一个鼠标,这就是功能的拓展

接口的定义格式和特点

如何使用接口?

接口用关键字interface修饰

public interface 接口名字{
    public abstract 返回值类型 方法名1();
    public abstract 返回值类型 方法名2();
    				.
                    .
                    .
}

接口和类的关系

接口和类的关系是实现关系,通过implements来表示

public class 类名 implements 接口名 {
    ...
}

使用接口时的注意事项

实现类的命名规则: 接口名+Impl

接口和类的实现关系,可以单实现,也可以多实现;

一个类实现多个接口的时候,之间用逗号隔开

public class 类名 implements 接口名1,接口名2,... {
    ...
}

接口有什么特点

1.接口中没有构造方法

2.接口不能实例化(就是不能创建对象)

3.不是抽象类的子类必须实现接口中所有的抽象方法

接口的成员特点

成员变量

只能是静态常量

默认修饰符: public static final

public static final int NUM_VLUE = 10 ;

构造方法

接口中没有构造方法,因为接口主要是拓展功能的,没有具体的存在

成员方法

只能是抽象方法(在jdk7版本以前)

默认修饰符: public abstract

public abstract void show();

JDK8版本中接口成员的特点

默认方法

什么是默认方法

在JDK8版本后,允许在几口中定义非抽象方法,但是需要关键字default修饰,这些方法就是默认方法

如何使用默认方法

格式: public default 返回值类型 方法名(参数列表){}

范例:

public default void showB(){
        System.out.println("interB......Show");
}

注意事项

  • 默认方法不是抽象方法,所以不强制重写,但是可以被重写,重写的时候去掉default
  • public 可以省略,default不能省略
  • 如果实现了多个接口,多个接口中存在相同的默认方法声明,子类就必须对该方法进行重写

静态方法

如何使用接口中的静态方法?

格式: public static 返回值类型 方法名(参数列表){}

public static void show(){
    
}

为什么要使用静态方法?

为了方便方法的调用

注意事项

  • 静态方法只能通过接口来进行调用,不能通过实现类名,或实现类对象来进行调用
  • public可以省略,但是static不能省略

私有方法

如何使用私有方法?

普通方法

格式:private 返回值类型 方法名 (参数列表){}

范例1:

private void show(){
    
}

静态方法

格式:private static 返回值类型 方法名(参数列表){}

范例2:

private static void method(){
    
}

为什么要在接口中使用私有方法?

提高代码的复用性

接口的使用思路

  1. 如果发现一个类中所有的方法都有抽象方法,可以使用接口;
  2. 涉及到接口大面积升级,而不想修改每一个实现类,就可以将更新方法,定义为带方法体的默认方法;(jdk8及后续版本)
  3. 希望默认方法调用更加简洁,可以考虑设计为static(jdk8及后续版本)
  4. 默认方法中出现了重复代码,可以抽取出一个私有方法(jdk9及后续版本)

类与类,类与接口和接口与接口的关系

类与类

继承关系,只能单继承不能多继承,但是可以多层次继承

类与接口

实现关系,可以单实现,也可以多实现;

还可以在继承一个类的同时,实现多个接口

如果直接父类和接口中出现了相同的方法声明,但是代码逻辑不一样,优先使用直接父类的代码逻辑

接口与接口的关系

继承关系,可以单继承,也可以多继承,如果继承的接口中又同名的默认方法,必须要进行重写

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页