Java&static关键字继承.V08
2022/4/3 20:20:07
本文主要是介绍Java&static关键字继承.V08,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
[BigDataJava:Java&static关键字继承.V08] [BigDataJava.面向对象][|章节三|static关键字和继承|方法重写的概念和使用|方法重写的原则|]
一、方法重写的概念和使用
### --- 方法重写的概念 ~~~ ——> 从父类中继承下来的方法不满足子类的需求时, ~~~ ——> 就需要在子类中重新写一个和父类一样的方法来覆盖从父类中继承下来的版本, ~~~ ——> 该方式就叫做方法的重写(Override)。
二、方法重写的原则
### --- 方法重写的原则 ~~~ ——> 要求方法名相同、参数列表相同以及返回值类型相同,从Java5开始允许返回子类类型。 ~~~ ——> 要求方法的访问权限不能变小,可以相同或者变大。 ~~~ ——> 要求方法不能抛出更大的异常(异常机制)。
三、编程代码
### --- 编程代码:编程实现Person类的封装 /* 编程实现Person类的封装 */
public class Person { // 1.私有化成员变量,使用private关键字修饰 private String name; private int age; //private boolean gender; // 性别 // 3.在构造方法中调用set方法进行合理值的判断 public Person() { System.out.println("Person()"); } public Person(String name, int age) { System.out.println("Person(String, int)"); setName(name); setAge(age); } // 2.提供公有的get和set方法并在方法体中进行合理值的判断 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if(age > 0 && age < 150) { this.age = age; } else { System.out.println("年龄不合理哦!!!"); } } // 自定义成员方法实现特征的打印 public void show() { System.out.println("我是" + getName() + ",今年" + getAge() + "岁了!"); } // 自定义成员方法描述吃饭的行为 public void eat(String food) { System.out.println(food + "真好吃!"); } // 自定义成员方法描述娱乐的行为 public void play(String game) { System.out.println(game + "真好玩!"); } }
四、编程代码: 自定义Worker类继承自Person类
### --- 编程代码: 自定义Worker类继承自Person类 /* 自定义Worker类继承自Person类 */
public class Worker extends Person { private int salary; public Worker() { super(); // 表示调用父类的无参构造方法,若没有加则编译器自动添加 System.out.println("Worker()"); } public Worker(String name, int age, int salary) { super(name, age); // 表示调用父类的有参构造方法 System.out.println("Worker(String, int, int)"); //setName(name); //setAge(age); setSalary(salary); } public int getSalary() { return salary; } public void setSalary(int salary) { if(salary >= 2200) { this.salary = salary; } else { System.out.println("薪水不合理哦!!!"); } } // 自定义成员方法描述工作的行为 public void work() { System.out.println("今天的砖头有点烫手..."); } // 自定义show方法覆盖从父类中继承的版本 @Override // 标注/注解,用于说明下面的方法是对父类方法的重写,若没有构成重写则编译报错 public void show() { super.show(); // 表示调用父类的show方法 System.out.println("我的薪水是:" + getSalary()); } }
五、编程代码:编程实现Worker类的测试
### --- 编程代码:编程实现Worker类的测试 /* 编程实现Worker类的测试 */
public class WorkerTest { public static void main(String[] args) { // 1.使用无参方式构造Worker类型的对象并打印特征 Worker w1 = new Worker(); // 当子类重写show方法后,则下面调用的是重写以后的版本 w1.show(); // null 0 System.out.println("----------------------------------"); // 2.使用有参方式构造Worker类型的对象并打印特征 Worker w2 = new Worker("zhangfei", 30, 3000); w2.show(); // zhangfei ... // 调用成员方法测试 w2.eat("豆芽"); w2.play("王者荣耀"); w2.work(); } }
六、编译打印
### --- 编译 C:\Users\Administrator\Desktop\project>javac WorkerTest.java
### --- 打印输出 C:\Users\Administrator\Desktop\project>java WorkerTest Person() Worker() 我是null,今年0岁了! 我的薪水是:0 ---------------------------------- Person(String, int) Worker(String, int, int) 我是zhangfei,今年30岁了! 我的薪水是:3000 豆芽真好吃! 王者荣耀真好玩! 今天的砖头有点烫手...
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
来自为知笔记(Wiz)
这篇关于Java&static关键字继承.V08的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程