当前位置: 首页 > news >正文

JAVA1025 类:继承:interface,接口继承必须实现接口方法;extends单继承 抽象类 属性 static

继承

interface

协议继承
多继承

在面向对象编程中,“接口实现多继承” 是指一个类可以通过实现多个接口来获得多种不同的行为约定,从而模拟了多继承的效果(特别是在像 Java 这样只支持单继承的语言中)。

// 接口1: 定义飞行能力
interface Flyable {void fly();
}// 接口2: 定义游泳能力
interface Swimmable {void swim();
}// 父类
class Animal {void breathe() {System.out.println("Breathing...");}
}// 子类 Bird 继承 Animal,并实现 Flyable 接口 (获得飞行能力)
class Bird extends Animal implements Flyable {@Overridepublic void fly() {System.out.println("Bird is flying");}
}// 子类 Duck 继承 Animal,并实现 Flyable 和 Swimmable 接口 (获得飞行和游泳能力)
class Duck extends Animal implements Flyable, Swimmable {@Overridepublic void fly() {System.out.println("Duck is flying");}@Overridepublic void swim() {System.out.println("Duck is swimming");}
}public class Main {public static void main(String[] args) {Bird sparrow = new Bird();sparrow.breathe(); // 继承自 Animalsparrow.fly();     // 实现 FlyableDuck donald = new Duck();donald.breathe(); // 继承自 Animaldonald.fly();     // 实现 Flyabledonald.swim();    // 实现 Swimmable// 多态:使用接口类型引用Flyable flyingThing = donald;flyingThing.fly();Swimmable swimmingThing = donald;swimmingThing.swim();}
}
接口继承必须实现接口方法

您的问题触及了接口实现的核心机制。准确来说:​实现接口的类必须提供该接口中定义的所有方法的具体实现(方法体)​。

// 定义一个接口
interface Drivable {void startEngine(); // 只有声明,没有实现void accelerate(int speed); // 只有声明,没有实现void brake(); // 只有声明,没有实现
}// 一个类实现 Drivable 接口
class Car implements Drivable {// 必须实现 startEngine()@Overridepublic void startEngine() {System.out.println("Car engine started.");}// 必须实现 accelerate(int speed)@Overridepublic void accelerate(int speed) {System.out.println("Car accelerating to " + speed + " km/h.");}// 必须实现 brake()@Overridepublic void brake() {System.out.println("Car braking.");}// 类还可以有自己的其他方法public void turnOnRadio() {System.out.println("Radio turned on.");}
}
interface school (){void play();void eat();void run(int speed);
}class student implements school {
public void play(){}}我的方法实现了吗?为啥没有报错 接口的继承不是必须要实现吗?

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

​接口的实现规则是严格的​:非抽象类实现接口时,必须实现接口中的所有方法。您看到的"不报错"是IDE的临时状态,一旦进行完整编译,错误一定会出现。这是Java语言的硬性规定,不会因开发环境而改变。

在这里插入图片描述
()
忘了
在这里插入图片描述
接口内方法不能实现方法体
在这里插入图片描述

extends单继承

单继承限制:​​ 最关键的限制是,在 Java、C#、PHP 等许多主流 OOP 语言中,​一个类只能直接继承自一个父类。这就是“单继承”的含义。
class Child extends Parent1✅ (允许)
class Child extends Parent1, Parent2❌ (不允许 - 编译错误)

被继承类是父类吗?继承类叫子类吗?父类可以有多个子类吗?子类有多个父类吗

​一个父类可以被任意多个子类继承。​​

​例子:​​
父类 Vehicle(交通工具) 可以有子类 Car(汽车)、Bicycle(自行车)、Motorcycle(摩托车)、Truck(卡车) 等。
父类 Shape(形状) 可以有子类 Circle(圆形)、Rectangle(矩形)、Triangle(三角形) 等。
​意义:​​ 这体现了代码的复用性和抽象性。通用的属性和方法在父类中定义一次,所有子类自动获得,无需重复编写。

​子类可以有多个父类吗?
​​​答案取决于编程语言:​​​在大多数主流语言(如 Java, C#, PHP, Swift, Kotlin)中:NO (不允许)。
​​这些语言遵循 ​单继承​ 原则。一个子类只能直接继承自一个父类。例如:class Dog extends Animal { … }(Dog 只能有一个直接父类 Animal)。

抽象类

abstract
必须实现
抽象类的方法,不能写抽象方法体

 //抽象类的方法 不许写抽象方法体public static void gotoSchool() {}

在这里插入图片描述
在这里插入图片描述
抽象类必须被子类实现

public abstract class StudentAbstract {//抽象类的方法 不许写方法体public  static void gotoSchool() {}
public class StudentAbstractImpl extends StudentAbstract {//抽象类必须被子类实现}

抽象类内部可以不写抽象方法

public abstract class StudentAbstract {//抽象类的方法 不许写方法体public  static void gotoSchool() {}
//public abstract class StudentAbstract {//    }是抽象方法吗?是定义了一个抽象类吧
//是的 抽象类
//抽象类必须被子类实现;如果抽象类内定义了抽象方法,子类内必须也实现抽象方法

在这里插入图片描述

属性

    // 属性static class Student {private String name;Student(String name){  this.name = new String(name);}//是一个方法吗?}
Student(String name) {          // 与类同名 + 无返回类型声明this.name = new String(name); // 初始化对象
}

这是一个构造函数(Constructor)​,不是普通方法。以下是详细解析:

Student(String name) {          // 与类同名 + 无返回类型声明this.name = new String(name); // 初始化对象
}

在这里插入图片描述

static

// 创建对象时自动调用构造函数
Student s = new Student("张三"); // 等效于执行了:
// 1. 分配内存空间
// 2. 调用构造函数:this.name = new String("张三")

在这里插入图片描述
在这里插入图片描述

静态和初始化的关系

  1. 初始化时机​类加载时初始化​:静态成员在类首次加载到JVM时初始化​早于实例初始化​:静态初始化发生在任何对象创建之前​只初始化一次​:整个程序生命周期中仅初始化一次
    在这里插入图片描述

设置静态能提高初始化效率吗?
在这里插入图片描述

http://www.dtcms.com/a/529343.html

相关文章:

  • CVE-2025-50154漏洞复现与技术分析报告
  • 时间序列数据异常检测算法(6)——基于深度学习的算法
  • dw中网站建设的基本流程三亚网站建设费用
  • 深圳做网站企业手机大全
  • 基层建设 网站东莞免费网站建站模板
  • memmove函数在嵌入式开发中的应用
  • 祥云平台建站云服务器做网站视屏
  • Google 登录集成教程(Web + Expo 移动端)
  • stm32f103c8t6最小系统板(针对需要进行制作)--原理图绘制+pcb制作
  • 具身智能论文阅读:Robotic Control via Embodied Chain-of-Thought Reasoning
  • 张店学校网站建设哪家好中美俄最新军事新闻
  • 演出票务网站建设wordpress图片中文不显示解决
  • 自己用dw做网站能加声音吗网站建设兴田德润
  • 北京网站建设公司朝阳泰国公共建设网站
  • 虚拟机挂起,重启后主机连接不上虚拟机docker中的mysql?(docker网络状态假死)
  • 2018年网站开发语言wordpress免费图床插件
  • PyTorch 深度学习基础:Dataset 与 DataLoader 详解
  • 2.4寸SPI串口ILI9341芯片彩色LCD驱动
  • 绍兴企业做网站浙江建设信息港电工证查询
  • 【系统分析师】高分论文:论需求分析及其应用(ERP 财务管控项目)
  • 数据结构(9)
  • 怎么做点播网站唐山企业做网站
  • 网站建设迅雷wordpress 简洁文章主题
  • 成都网站建设好多钱中英版网站怎么做
  • wait和notify机制详解
  • 网站开发文档需求撰写word营销型网站建站系统
  • wordpress order插件seo实训报告
  • 南宁建设厅网站是什么品牌网络市场环境调研报告
  • 做外贸需要做网站吗电子商务网站建设读书笔记
  • Linux17 进程间的通信 消息队列