java — 抽象abstract 和 最终 final

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

一、抽象类和抽象方法

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

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

  1.  抽象类的声明

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

  2.  抽象方法的声明

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

    注意:

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

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

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

  4.   抽象类的注意事项

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

二、 最终修饰符 final

  • 用 final 修饰 变量 时:

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

原文地址:https://www.cnblogs.com/whc0305/p/10228377.html

时间: 2024-08-03 02:34:49

java — 抽象abstract 和 最终 final的相关文章

java抽象、接口 和final

抽象 一.抽象类:不知道是具体什么东西的类. abstract class 类名 1.抽象类不能直接new出来. 2.抽象类可以没有抽象方法. 3.抽象类中,可以有抽象方法,也可以有非抽象方法.抽象类中还可以有成员变量. 4.派生类中,可以不实现某些抽象方法,但派生类必须要声明为抽象类. 二.抽象方法:不知道具体是干什么事情的方法.abstract 返回类型 函数名(形参); 1.抽象方法没有函数体. 2.有抽象方法的类必须是抽象类. 遇到抽象类,两种用法: 1.找找有没有它的派生类,用它的派生

抽象 & abstract关键字

抽象类 抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提供具体实现的对象的类 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用.类的设计应该保证父类和子类能够共享特征.有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫抽象类. 个人理解:子类变得越来越多,涵盖范围越来越广,以至于囊括几乎所有情形,父类变得更多是一种"形式",甚至变得无用.比如"人"作为父类,而当子类涵盖几乎所有类型的"人"后,父类

Java 抽象工厂模式

一.概述 1.抽象工厂:当情况是需要产生一系列产品,若需更换产品,则要求一系列产品一起换,且要控制一系列产品的产生过程,此时可考虑抽象工厂模式.例:小明装修屋子,把电视.冰箱都替换掉,他这次需要把电视.冰箱换成三星的,下次装修可能要换成海尔的.此时可设计抽象类Telveison及Fridge负责产生产品,抽象工厂AbstractFactory负责产生一系列产品 PS:抽象工厂与普通工厂各自的优缺点: (1)普通工厂容易在产品维度进行扩展,便产生系列产品时不方便,且易造成工厂类泛滥 (2)抽象工厂

Java抽象类(Abstract Class)与接口(Interface)区别

抽象类与接口比较 抽象类跟接口类似,都不能实例化,可能包含不需实现方法或已实现的方法. 抽象类可以定义一些不是静态或常量的字段,定义 public, protected, private访问级别的具体方法. 接口的所有字段自动是public.静态.常量,所有定义的方法的访问级别都是public. 类只能继承一个抽象类,可以实现多个接口. 抽象类使用场景 1.你想在几个密切相关的类共享代码. 2.你想让继承你抽象类的类有一些共用的字段或方法,或想设置protected, private的访问级别.

在JAVA中利用public static final的组合方式对常量进行标识

在JAVA中利用public static final的组合方式对常量进行标识(固定格式). 对于在构造方法中利用final进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效. 常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值.Final int x=3: ②在构造的时候赋值. 局部变量可以随时赋值. 1 package TomText; 2 //利用if语句,判断某一年是否是闰年. 3 public class TomText_28 { 4 p

Java基础第9天+final关键字、多态(上转型,下转型)、抽象类(特点,成员特点)、接口(特点,成员特点)

1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: A:局部变量 a:基本类型 值不能发生改变 b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的 B:初始化时机 a:只能初始化一次. b:常见的给值 定义的时候.(推荐) 构造方法中. 2:多态(掌握) (1)同一个对象在不同时刻体现出来的不同状态. (2)多态的前提: A:有继承或者实

Java中abstract class 和 interface 的解释和他们的异同点(转)

(一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有 很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的 选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理 解.对于设

java中abstract和interface的區別(轉)

(一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有 很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的 选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理 解.对于设

Java之关键字static和final的使用

static 在Java中声明属性.方法时,可使用关键字static来修饰. 1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量. 两者的区别是:对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的).对于实例变量,没创建一个实例,就会为实例变量分配一次