返回首页

抽象类,接口,instanceof,面向接口编程基础

462 字 2 分钟

day9#

抽象类,接口,instanceof,面向接口编程基础

普通类和抽象类的关系 普通类也叫具体类,指没有使用abstrate修饰,可以创建对象的类:

抽象类,父类中存在,abstract 的方法,如果子类中没有实现这个方法(重写), 这个子类就是不完整的,java不允许使用不完整的类创建对象。

父类中存在抽象方法,子类可以不实现继续声明为抽象类,这时他可以编译,但他不再是普通类,也不能使用new创建,他把父类中的抽象方法继续交给更具体的子类 子类也可以继续声明为抽象类,子类中重写父类中的抽象方法,这时他是完整的普通类,可以使用new创建对象

子类中初始化父类的属性,在构造方法中写super(属性名字)

2. 接口#

接口用于表示“具有什么能力“,描述能做什么,一种能力或规则

public interface Reportable {
void submitReport();
}

接口中的这个方法没有方法体。现阶段可以把它理解为:

public abstract void submitReport();

类使用 implements 实现接口:

public class OfficeEmployee
extends Employee
implements Reportable {
}

含义是:

  • extends Employee:OfficeEmployee 是一种员工。
  • implements Reportable:OfficeEmployee 具有提交报告的能力。

public class OfficeEmployee extends Employee implements Reportable {

@Override
public void submitReport() {
System.out.println(getName() + "提交纸质报告");
}

}

interface#

Reportable 用来规定“提交报告”这种能力。

public interface Reportable {
void submitReport();
}

任何类实现它,都必须提供 submitReport()

public class OfficeEmployee implements Reportable {
@Override
public void submitReport() {
System.out.println("提交工作报告");
}
}

它单独放在 Reportable.java,因为:

  1. 它是一份独立规则,不专属于某个员工类。
  2. 多个类都可以实现它。
  3. Java要求公共顶层接口 Reportable 放在同名文件 Reportable.java 中。
抽象类,接口,instanceof,面向接口编程基础
https://335264.xyz/posts/抽象类接口instanceof面向接口编程基础/
作者
刺儿菜
发布于
2026-09-11
许可协议
CC BY-NC-SA 4.0
Comments

评论