继承 + static + final 综合应用

考察知识点extendsstaticfinal、方法隐藏

1.编程要求

  1. 父类 Carfinal 常量 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();
    }
}
相关推荐
IT策士1 小时前
Python 面试系列:常见 100 个经典面试问题,从入门到进阶
开发语言·python·面试
想取一个与众不同的名字好难1 小时前
QT webSocket接收客户端发送的双目摄像头数据并显示
开发语言·qt·websocket
li星野1 小时前
二分查找六题通关:从标准模板到旋转数组(Python + C++)
java·c++·python
Kiyra1 小时前
LLM 的 JSON 不靠谱:结构化输出的重试与修复实战
开发语言·python·json
fengci.1 小时前
CTF+随机困难部分
android·开发语言·网络·安全·php
沐风。561 小时前
pyton笔记
开发语言
无所事事O_o1 小时前
IntelliJ IDEA 无法识别 Maven SNAPSHOT 依赖,但 Maven 编译正常
java
自不量力的A同学1 小时前
PHP 8.5.6 发布
开发语言·php
基德爆肝c语言2 小时前
Qt控件:按钮类
开发语言·qt