继承 + static + final 综合应用

考察知识点 :extends、static、final、方法隐藏

1.编程要求:

  1. 父类 Car:final 常量 MAX_SPEED、静态方法 run()、普通方法;
  2. 子类 ElectricCar 继承 Car:尝试重写父类静态方法(验证静态方法是隐藏,不是重写);
  3. 子类无法重写父类 final 方法;
  4. 测试:分别用父类、子类对象调用静态方法,观察结果。

打印结果:

汽车在行驶

电动车在行驶

汽车最大速度:280.0

2.解题过程

复制代码
package Date501;

class Car {
    // 1. final 常量:最大速度
    public static final int MAX_SPEED = 120;

    // 静态方法
    public static void run() {
        System.out.println("父类汽车在公路上行驶");
    }

    // final 普通方法:禁止子类重写
    public final void showInfo() {
        System.out.println("汽车最高时速:" + MAX_SPEED);
    }
}
复制代码
class ElectricCar extends Car {
    // 静态方法【方法隐藏】,不是方法重写
    public static void run() {
        System.out.println("子类电动车在省电行驶");
    }

    // 下面这行代码会报错:final 方法不能被重写
    // @Override
    // public void showInfo() {}
}
复制代码
public class TestCar {
    public static void main(String[] args) {
        // 静态方法推荐用 类名.方法 调用
        System.out.println("---父类调用静态方法---");
        Car.run();

        System.out.println("---子类调用静态方法---");
        ElectricCar.run();

        // 多态引用调用静态方法:编译看左边,运行也看左边
        System.out.println("---多态引用调用静态方法---");
        Car car = new ElectricCar();
        car.run();

        // 调用final方法
        System.out.println("---调用final方法---");
        car.showInfo();
    }
}
相关推荐
_冷眸_4 分钟前
Python 调用大模型 API:最小请求、Base URL 和 401/404 排查
开发语言·人工智能·python
niucloud-admin15 分钟前
NIUCLOUD PHP SAAS上门家政使用文档:服务保障
java·开发语言·php
IT枫斗者枫哥28 分钟前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
知识搬运临时工39 分钟前
一个模板把 AEM 拖进 Full GC 死亡螺旋:300% CPU、7 GB 堆、310 万行堆栈
java·aws
熊猫钓鱼>_>42 分钟前
鸿蒙 PC 三方库适配复盘:libfvad 1.0 —— 把 WebRTC VAD 做成能装进采集链路的静态库
服务器·开发语言·华为·harmonyos·openharmony·适配·鸿蒙pc
用户4329359280543 分钟前
CoAP还是MQTT:1万只Cat.1水表三个月带宽续航实测
java
知守观1 小时前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
Ai-_Man1 小时前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
raindayinrain1 小时前
c++设计模式
开发语言·c++·设计模式
Java成神之路-1 小时前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java