Java初学者:技术文章(类的继承)

简介: Java是面向对象编程的语言,面向对象的主要目的之一是提供可重用的代码。设想当我们开发一个非常庞大的项目时,重用已有的代码比重新编写要好得多,而且还可以节省时间,避免在程序中引入新的错误所以使用继承可以提高代码的重用性与程序的扩展性。

              Java初学者:技术文章(类的继承)

Java是面向对象编程的语言,面向对象的主要目的之一是提供可重用的代码。设想当我们开发一个非常庞大的项目时,重用已有的代码比重新编写要好得多,而且还可以节省时间,避免在程序中引入新的错误所以使用继承可以提高代码的重用性与程序的扩展性。


一般情况下,通过继承派生出的类比设计新类要容易得多。



从一个类派生出另一个类时,原始类称为基类(父类),继承类称为派生类(子类,超类)。


Java中继承的语法格式为:


public class 类名(子类) extends 类名(基类) {


}



当一个子类继承一个父类时,继承的是父类中的属性和方法,并且子类也可以重写父类中的方法,甚至可以在子类中定义父类没有的属性和方法。这样就大大提高了程序的扩展性。



继承可以完成以下几项工作:


1、可以在已有类的基础上添加功能。


2、可以给类添加数据。


3、可以重写类的方法。


需要注意的是,java中一个类只能继承一个其他的类,也就是所谓的单继承。



上面提到了子类可以对父类的方法进行重写,当父类中的方法无法满足子类的需求时,我们需要重写父类的方法来满足我们的需求。



从上面的分析不难发现,重写父类中的方法必须满足以下几个条件:


1、必须要存在一个继承关系。


2、因为是对父类已有方法的重写,所以方法的返回值类型、方法名、参数个数、参数类型、参数顺序必须要和父类的完全一致。


3、子类方法的访问权限只能大于或等于父类方法的访问权限


4、重写方法中的代码和父类的不同。



需要注意的是:在用子类实例化对象调用方法时,调用的会是重写过后子类的方法,如果想要再调用父类的方法,则需要使用关键字super来调用。



下面通过一个简单的例子来说明类的继承的使用:



例:迪迦奥特曼和小怪兽哥斯拉进行PK,直到一方的血量为0时结束战斗;


①:如果迪迦奥特曼胜利,则迪迦奥特曼要和盖亚奥特曼进行K,直到一方的血量为0时结束战斗,输出谁胜利了!


②:如果小怪兽哥斯拉胜利,则小怪兽哥斯拉要和小怪兽A进行K,直到一方的血量为0时结束战斗,输出谁胜利了!



分析:


在此例子下不难发现所涉及到的所有对象(迪迦,盖亚,哥斯拉,小怪兽A)都有共同的属性即:血量,名字,攻击力。他们也都有共同的行为即攻击对方。


所以我们可以定义一个父类(Fighter),父类中定义有属性血量,名字,攻击;定义fight攻击方法。


然后再定义两个子类(分别是小怪兽和奥特曼)继承Fighter类,需要注意的是,在此情景中,两个子类所实例化的对象所要实现的方法和父类所定义的相同,因此没有选择方法的重写。


最后在主程序中用类名初始化对象,给各属性赋值,之后按照要求实现该情景!



以下是代码的实现:


父类Fighter

15.png


子类Ult

16.png


子类Gri

17.png

Manager类

18.png


19.png




 


相关文章
|
1天前
|
监控 数据可视化 Java
【JAVA】分布式链路追踪技术概论
skywalking拥有更加的强大和细粒度的图形监控界面。
11 2
|
2天前
|
Java 关系型数据库 MySQL
Java技术探索中的实践与思考
Java的跨平台、自动内存管理和丰富的类库使其备受欢迎。通过构建一个使用Spring Boot、MySQL和Thymeleaf的简易博客系统,展示了Java技术栈的应用。实践中,强调了技术选型、面向对象设计、安全性、性能优化和持续学习的重要性。
|
2天前
|
自然语言处理 Java API
Java 8的Stream API和Optional类:概念与实战应用
【5月更文挑战第17天】Java 8引入了许多重要的新特性,其中Stream API和Optional类是最引人注目的两个。这些特性不仅简化了集合操作,还提供了更好的方式来处理可能为空的情况,从而提高了代码的健壮性和可读性。
24 7
|
2天前
|
XML Java API
你必须掌握的 21 个 Java 核心技术!,千峰Java
你必须掌握的 21 个 Java 核心技术!,千峰Java
|
2天前
|
设计模式 算法 Java
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
Java的前景如何,好不好自学?,万字Java技术类校招面试题汇总
|
2天前
|
IDE Java 程序员
Java程序员必备的21个核心技术,你都掌握了哪些?,深入浅出Java开发
Java程序员必备的21个核心技术,你都掌握了哪些?,深入浅出Java开发
|
4天前
|
安全 Java 开发者
Java一分钟之-文件与目录操作:Path与Files类
【5月更文挑战第13天】Java 7 引入`java.nio.file`包,`Path`和`Files`类提供文件和目录操作。`Path`表示路径,不可变。`Files`包含静态方法,支持创建、删除、读写文件和目录。常见问题包括:忽略异常处理、路径解析错误和权限问题。在使用时,注意异常处理、正确格式化路径和考虑权限,以保证代码稳定和安全。结合具体需求,这些方法将使文件操作更高效。
11 2
|
4天前
|
安全 Java 开发者
Java一分钟之-Optional类:优雅处理null值
【5月更文挑战第13天】Java 8的`Optional`类旨在减少`NullPointerException`,提供优雅的空值处理。本文介绍`Optional`的基本用法、创建、常见操作,以及如何避免错误,如直接调用`get()`、误用`if (optional != null)`检查和过度使用`Optional`。正确使用`Optional`能提高代码可读性和健壮性,建议结合实际场景灵活应用。
21 3
|
4天前
|
机器学习/深度学习 前端开发 Java
Java与前端:揭开技术浪潮背后的真相
Java与前端:揭开技术浪潮背后的真相
12 1
|
4天前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
14 0