Java 基础 record 5 - 抽象类 接口

抽象类:

  1. 概念:
    Java 中允许用户创建一个起“模板”作用的类,称为“抽象类”(abstract class),目的是可以根据它的格式来创建和修改新的类。

2.定义及使用:
抽象类是以 abstract 修饰的类,定义抽象类的语法格式如下:
abstract class 类名称
{
声明成员变量;
返回值的数据类型 方法名(参数表)
{
...
}
abstract 返回值的数据类型 方法名(参数表);
//在抽象方法里,不能定义方法体
}
eg:


Xnip2019-08-11_20-11-36.png

注意⚠️:
1)不能直接由抽象类创建对象,只能通过抽象类派生出新的子类,再由其子类创建对象。也就是说抽象类不能用 new 运算符来创建实例对象的类,它可以作为父类被它的所有子类共享。
2)抽象方法声明中修饰符 abstract 和 static, private, native 不能并列修饰同一个方法。
3)一个类不能既是最终类,又是抽象类,即 abstract类不能用 final 来修饰。
4)抽象类中不一定包含抽象方法,但包含抽象方法的类一定要声明为抽象类,而定义定义为抽象的方法必须在子类派生时被覆盖。

接口:

  1. 接口的结构与抽象类非常相似,也具有数据成员与抽象方法,但它与抽象类有以下不同:
    a. 接口的数据成员都是静态的且必须初始化,且其初值不能修改。
    b. 接口中的方法必须全部声明为 abstract 。

2.接口的定义方法:
[public] interface 接口名称 [extends 父接口名列表]
{
[public] [static] [final] 数据类型 成员变量名 = 常量;
...
[public] [abstract] 返回值的数据类型 方法名(参数表);
...
}

eg:
Xnip2019-08-12_19-07-03.png
  1. 接口的实现与引用:
    接口只需声明而不用定义方法体,所以接口与抽象类一样不能用 new 运算符直接创建对象,而是利用接口的特性创建一个新类,用它来创建对象。该过程被称为接口的实现,接口的实现需要在声明一个类的同时使用关键字 implements,接口实现的语法格式为:
    class 类名称 implements 接口表
    {
    ...
    }
    eg:


    Xnip2019-08-12_19-15-22.png

注意⚠️:
1)如果实现某接口的类不是 abstract 的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法。
2)一个类在实现某接口的抽象方法时必须使用完全相同的方法头。
3)接口中抽象类的访问控制符都已指定为 public ,所以类在实现方法时必须显示的使用 public 修饰符。

  1. 接口的继承:
    一个接口可以有一个以上的父接口,它们之间用逗号隔开,形成父接口列表,新接口将继承所有父接口的变量与方法。如果子接口中定义了与父接口同名的常量或者相同的方法,则父接口中的常量将被隐藏,方法将被覆盖。


    Xnip2019-08-12_19-41-14.png
  2. 利用接口实现类的多重继承:
    一个类只能有一个直接父类,但它可以同时实现多个接口。一个类在实现多个接口时,在 implements 子句中用逗号分隔个接口名。


    Xnip2019-08-12_20-11-58.png

创建一个方便测量代码块执行效率的模板


Xnip2019-08-12_16-38-33.png

Xnip2019-08-12_19-07-03.png

今日总结感悟:今天突然感到一阵莫名的兴趣,有那么一点领悟了什么的惊奇之感,虽然很多内容还是不能消化透,理解了的也还无法熟练使用,但是我感觉好像这扇门正在慢慢打开,也许不久之后情况就完全不同了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容