java — 抽象abstract 和 最终 final

Posted whc0305

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java — 抽象abstract 和 最终 final相关的知识,希望对你有一定的参考价值。

 

java — 抽象abstract 和 最终 final 修饰符

一、抽象类和抽象方法

  抽象类:由于许多对象都有共同的属性和方法,产生了代码冗余,抽象类做的就是将这些类共同的方法和属性 抽取 出来,变成了一个类,那就是抽象类。

      和 父类 很像对不对,其实抽象类就是父类中的一种,必须被继承才能完美使用的一种类。

  1.  抽象类的声明

[访问修饰符] abstract class 类名 {
    //方法体
}

  2.  抽象方法的声明

[访问修饰符] abstract 返回值类型 方法名 (形参类型 形参名,......);

    注意:

  • 抽象方法没有方法体,即没有花括号
  • 想要使用抽象方法,必须要被在子类中进行重写
  • 抽象方法中不能用 private ,static 和 final 进行修饰

  3.  抽象方法 和 抽象类 的注意事项

      • 抽象方法必须放在抽象类中
      • 抽象类中 可以 有普通方法和抽象方法,但并不是一定要有

  4.   抽象类的注意事项

      • 抽象类只能被继承,不能实例化
      • 若子类为普通类并继承了抽象类,则 必须重写 抽象类中全部的抽象方法。如果没有全部重写,那就将子类变成抽象类
      • 当一个类实现了一个接口时,则 必须重写 接口中全部的抽象方法。如果没有全部重写,那就将那个类变成抽象类

 

二、 最终修饰符 final

  • 用 final 修饰 变量 时:
    • 这个变量在 声明 时就必须被初始化,或者在构造器中赋值
    • 在初始化完成后,不能再被赋值,即为固定常量
  • 用 final 修饰 方法 时:
    • 该方法不能被重写
    • 不能修饰抽象方法
  • 用 final 修饰 类 时:
    • 该类不能被继承

 

以上是关于java — 抽象abstract 和 最终 final的主要内容,如果未能解决你的问题,请参考以下文章

JAVA抽象类和抽象方法(abstract)

C#中virtual和abstract的区别

java基础之十三:Abstract类和方法

Java抽象类abstract和interface接口

JAVA抽象类和抽象方法(abstract)

Java第10讲:抽象类.接口