4. java基础之修饰符

其他修饰符

public 可以修饰属性、方法、构造方法、类
protected 可以修饰属性、方法、构造方法
default 可以修饰属性、方法、构造方法、类
private 可以修饰属性、方法、构造方法(如果修饰构造方法全为私有,则该类不支持被继承)
abstract 可以修饰方法、类
final 可以修饰属性、方法、类

abstract

  1. abstract修饰类时,这个类只能声明引用、不能创建对象,可供子类继承(多态)
  2. abstract修饰方法,抽象方法没有实现({}),只有声明(abstract void method();),供子类去覆盖实现
    总结:
  • 如果一个类具有抽象方法,那么这个类就必须是抽象类,但抽象类不一定有抽象方法
  • 如果一个类继承抽象类,但若这个类不希望成为抽象类,这个类就必须实现父亲类中所有的抽象方法
  • 抽象类也拥有构造方法,供子类用super()调用
  • 抽象方法可以使方法的声明和实现部分分离,声明提取到父类,实现留在子类,则更好的体现子类的共性放在父类的设计思想

    final修饰符

    1.final修饰方法:用final修饰的方法不能被子类覆盖,但可以被继承
    2.final修饰类:用final修饰的类不能被继承
    3.final修饰变量:
    修饰局部变量:一旦赋值就不能更改(常量)
    修饰成员变量:用final修饰的类的成员变量,没有默认值,可以通过初始化赋值一次。如果只声明而没有初始化赋值,就必须在所有构造方法里赋值或用static修饰的代码块

    接口interface

    接口:接口是一个特殊的抽象类
    注意:
  1. 接口中所有的方法都是公开抽象方法(public abstract 方法名,可以省略不写)
    (在jdk8后接口中可以有default、static方法. jdk9后几口中可以有private方法) 变态不?
  2. 接口中的属性都是公开静态常量(public static final 常量名 ,可以省略不写)
  3. 接口中没有构造方法,而抽象类中有构造方法
  4. 一个类实现一个接口,如果这个类不希望成为一个抽象类,则就必须实现接口中的所有方法

    接口的特性:
  5. 接口之间可以定义多继承关系(接口之间的继承仍然是用extends,用“,”分隔)
  6. 一个类在继承另外一个类的同时,还能实现多个接口此时多个接口之间用“,”隔开

    接口的作用:
  7. 实现多继承(注意不全是多继承,例如一个类不可能有两个方法名相同、参数表相同、放回值类型相同的两个方法,所有就要求继承多个父类时,父类如果有相同方法时,就会出错)
  8. 接口是一个标准(提高编程的弱耦合性)
  9. 定义接口就是定义一个标准,就把标准的实现者和标准的使用者分离,从而形成弱耦合关系

猜你喜欢

转载自www.cnblogs.com/linanana/p/12075329.html