Java 继承那些事:子类悄悄“偷学”父类技能,还能“创新”独步天下!

简介: 【6月更文挑战第16天】Java中的继承允许子类“偷学”父类技能并创新。例如,`Student`继承`Person`,添加学生ID特性;`Circle`继承`Shape`,重写`draw`方法绘制圆形。继承帮助构建层次清晰的代码结构,子类可根据需求灵活创新,适应复杂业务场景,实现代码的高效与精彩。

在 Java 的世界里,继承就像是一场奇妙的旅程,子类就如同一个机灵的学徒,悄悄地“偷学”着父类的技能,而后又能凭借自己的智慧进行“创新”,从而在编程的江湖中独步天下。

让我们先来看一个简单的例子。假设我们有一个父类 Person

public class Person {
   
    protected String name;

    public Person(String name) {
   
        this.name = name;
    }

    public void sayHello() {
   
        System.out.println("Hello, I'm " + name);
    }
}

然后,我们创建一个子类 Student 来继承 Person

public class Student extends Person {
   

    private String studentId;

    public Student(String name, String studentId) {
   
        super(name);
        this.studentId = studentId;
    }

    @Override
    public void sayHello() {
   
        System.out.println("Hello, I'm " + name + ", a student with ID " + studentId);
    }
}

在这里,子类 Student 继承了父类 Person 的属性 name 和方法 sayHello。但它可不是简单地照搬,而是在 sayHello 方法中加入了自己特有的信息——学生的学号。这就像是子类这个“小机灵鬼”在“偷学”了父类的技能后,又巧妙地进行了创新,让这个方法变得更具个性。

再看另一个例子,有一个父类 Shape

public class Shape {
   
    public void draw() {
   
        System.out.println("Drawing a general shape");
    }
}

我们创建一个子类 Circle

public class Circle extends Shape {
   

    @Override
    public void draw() {
   
        System.out.println("Drawing a circle");
    }
}

子类 Circle 又一次“偷学”了父类的 draw 方法,然后将其改造成了专门绘制圆形的版本。这种创新让它在特定的场景下能够展现出独特的魅力。

通过继承,子类能够获取父类的基础能力,然后在此基础上进行拓展和改进。这就如同站在巨人的肩膀上,既能利用前人的智慧,又能创造出属于自己的精彩。

在实际的编程中,继承的这种特性让我们可以构建出层次分明、结构清晰的代码体系。子类可以根据具体的需求,灵活地对父类的方法和属性进行“创新”,从而满足各种复杂多变的业务场景。

总之,Java 中的继承让子类有机会悄悄地“偷学”父类的技能,同时又能凭借自身的创造力进行“创新”,从而在代码的世界里闯出一片属于自己的天地。这是 Java 编程中一个非常强大而又有趣的特性,值得我们不断去探索和运用,让我们的代码变得更加精彩和高效。

相关文章
|
15天前
|
缓存 前端开发 JavaScript
9大高性能优化经验总结,Java高级岗必备技能,强烈建议收藏
关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。本文介绍了9种性能优化方法,涵盖代码优化、数据库优化、连接池调优、架构层面优化、分布式缓存、异步化、Web前端优化、服务化、硬件升级、搜索引擎和产品逻辑优化。欢迎留言交流。
|
14天前
|
前端开发 Java API
过时Java技术的退役:这些技能你不再需要掌握!
【10月更文挑战第22天】 在快速变化的技术领域,一些曾经流行的Java技术已经逐渐被淘汰,不再适用于现代软件开发。了解这些过时的技术对于新手开发者来说尤为重要,以避免浪费时间和精力学习不再被行业所需的技能。本文将探讨一些已经或即将被淘汰的Java技术,帮助你调整学习路径,专注于那些更有价值的技术。
28 1
|
16天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
13 3
|
16天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
28 2
|
16天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
27 2
|
16天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
26 1
|
13天前
|
存储 Java
在Java编程的世界里,标识符命名是一项基础且至关重要的技能
在Java编程的世界里,标识符命名是一项基础且至关重要的技能
9 0
|
Java 数据库 前端开发
|
2天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
11天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
下一篇
无影云桌面