☰
Java抽象类与接口:从概念到实战
2026/10/22 13:03:15 网站建设 项目流程

文章目录

  • Java抽象类与接口:从概念到实战
  • 前言
  • 一、抽象类
    • 抽象类概念
    • 抽象类语法
    • 抽象类特性
    • 抽象类的作用
  • 二、接口
    • 接口的概念
    • 语法规则
    • 接口使用
    • 接口特性
    • 实现多个接口
    • 接口间的继承
    • 接口使用实例
    • 抽象类和接口的区别
  • 总结

前言

抽象类和接⼝的学习

一、抽象类

抽象类概念

如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类

在打印图形例⼦中,⽗类Shape中的draw⽅法好像并没有什么实际⼯作,主要的绘制图形都 是由Shape的各种⼦类的draw⽅法来完成的.像这种没有实际⼯作的⽅法,我们可以把它设计成⼀个 抽象⽅法(abstractmethod),包含抽象⽅法的类我们称为抽象类(abstractclass)

抽象类语法

在Java中,⼀个类如果被abstract修饰称为抽象类,抽象类中被abstract修饰的⽅法称为抽象 ⽅法,抽象⽅法不⽤给出具体的实现体。

注意:抽象类也是类,内部可以包含普通⽅法和属性,甚⾄构造⽅法

抽象类特性

1.抽象类不能直接实例化对象

2. 抽象⽅法不能是private的

3. 抽象⽅法不能被final和static修饰,因为抽象⽅法要被⼦类重写

4. 抽象类必须被继承,并且继承后⼦类要重写⽗类中的抽象⽅法,否则⼦类也是抽象类,必须要使⽤ abstract 修饰

5. 抽象类中不⼀定包含抽象⽅法,但是有抽象⽅法的类⼀定是抽象类

6. 抽象类中可以有构造⽅法,供⼦类创建对象时,初始化⽗类的成员变量

抽象类的作⽤

抽象类本⾝不能被实例化,要想使⽤,只能创建该抽象类的⼦类.然后让⼦类重写抽象类中的抽象⽅法.

使⽤抽象类相当于多了⼀重编译器的校验. 使⽤抽象类的场景就如上⾯的代码,实际⼯作不应该由⽗类完成,⽽应由⼦类完成.那么此时如果不⼩⼼ 误⽤成⽗类了,使⽤普通类编译器是不会报错的.但是⽗类是抽象类就会在实例化的时候提⽰错误,让我 们尽早发现问题.

二、接⼝

接⼝的概念

接⼝就是公共的⾏为规范标准,⼤家在实现时,只要符合规范标准,就可以 通⽤。 在Java中,接⼝可以看成是:多个类的公共规范,是⼀种引⽤数据类型。

语法规则

接⼝的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了⼀个接 ⼝。

1. 创建接⼝时,接⼝的命名⼀般以⼤写字⺟I开头.

2. 接⼝的命名⼀般使⽤"形容词"词性的单词.

接⼝使⽤

接⼝不能直接使⽤,必须要有⼀个"实现类"来"实现"该接⼝,实现接⼝中的所有抽象⽅法。

实现笔记本电脑使⽤ USB ⿏标、 USB 键盘的例⼦

1. USB 接⼝:包含打开设备、关闭设备功能

2. 笔记本类:包含开机功能、关机功能、使⽤ USB 设备功能

3. ⿏标类:实现 USB 接⼝,并具备点击功能

4. 键盘类:实现 USB 接⼝,并具备输⼊功能

接⼝特性

1. 接⼝类型是⼀种引⽤类型,但是不能直接new接⼝的对象

2. 接⼝中每⼀个⽅法都是public的抽象⽅法,即接⼝中的⽅法会被隐式的指定为public abstract(只 能是public abstract,其他修饰符都会报错)

3. 接⼝中的⽅法是不能在接⼝中实现的,只能由实现接⼝的类来实现

4. 重写接⼝中⽅法时,不能使⽤默认的访问权限

5. 接⼝中可以含有变量,但是接⼝中的变量会被隐式的指定为public static final变量

6. 接⼝中不能有静态代码块和构造⽅法

7. 接⼝虽然不是类,但是接⼝编译完成后字节码⽂件的后缀格式也是.class

8. 如果类没有实现接⼝中的所有的抽象⽅法,则类必须设置为抽象类

实现多个接⼝

在Java中,类和类之间是单继承的,⼀个类只能有⼀个⽗类,即Java中不⽀持多继承,但是⼀个类可 以实现多个接⼝。下⾯通过类来表⽰⼀组动物

上⾯的代码展⽰了Java⾯向对象编程中最常⻅的⽤法:⼀个类继承⼀个⽗类,同时实现多种接⼝

继承表达的含义是is - a语义,⽽接⼝表达的含义是 具有 xxx 特性

接⼝间的继承

在Java中,类和类之间是单继承的,⼀个类可以实现多个接⼝,接⼝与接⼝之间可以多继承。即:⽤接⼝可以达到多继承的⽬的。 接⼝可以继承⼀个接⼝,达到复⽤的效果. 使⽤extends关键字.

以青蛙为例,典型的两栖动物

实现run⽅法,也需要实现swim⽅法

接⼝使⽤实例

对象之间进⾏⼤⼩关系⽐较

⽅式⼀:使⽤Comparable接⼝

⽅式⼆:使⽤Comparator接⼝

抽象类和接⼝的区别

核⼼区别:

抽象类中可以包含普通⽅法和普通字段,这样的普通⽅法和字段可以被⼦类直接使⽤(不必重 写)

接⼝中不能包含普通⽅法,⼦类必须重写所有的抽象⽅法.

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询