Java 基础(面向对象特征: 方法的重写)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 基础(面向对象特征: 方法的重写),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2712字,纯文字阅读大概需要4分钟。
内容图文
![Java 基础(面向对象特征: 方法的重写)](/upload/InfoBanner/zyjiaocheng/604/522049f10fb545019ea999edf73803f2.jpg)
定义
在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。
要求
- 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表
- 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型
- 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限。
注意:子类不能重写父类中声明为private权限的方法 - 子类方法抛出的异常不能大于父类被重写方法的异常
注意:
子类与父类中同名同参数的方法必须同时声明为非 static 的(即为重写),或者同时声明为 static 的(不是重写)。因为 static方法是属于类的,子类无法覆盖父类的方法。
具体说明
- 重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作
- 应用: 重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法
- 重写的规定:
方法的声明: 权限修饰符 返回值类型 方法名 (形参列表) {
//方法体
}
约定俗称:子类中的叫重写的方法,父类中的叫被重写的方法
① 子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同
② 子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符
特殊情况:子类不能重写父类中声明为 private 权限的方法
③ 返回值类型:
父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void
父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类
父类被重写的方法的返回值类型是基本数据类型,则子类重写的方法的返回值必须是相同的级别数据类型(比如:double),则子类重写的方法的返回值类型必须是相同的级别数据类型(必须是double)
④ 子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型
Person.java
package com.klvchen.java1;
public class Person {
String name;
int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("吃饭");
}
public void walk(int distance) {
System.out.println("走路, 走的距离是: " + distance + "公里");
show();
eat();
}
private void show() {
System.out.println("我是一个人");
}
public Object info() {
return null;
}
}
Student.java
package com.klvchen.java1;
public class Student extends Person{
String major;
public Student() {
}
public Student(String major) {
this.major = major;
}
public void study() {
System.out.println("学习,专业是: " + major);
}
//对父类中的 eat() 进行了重写
public void eat() {
System.out.println("学生应该多吃有营养的食物");
}
//无法对父类中的 eat() 进行了重写
public void show() {
System.out.println("我是一个学生");
}
public String info() {
return null;
}
public void walk(int distance) {
System.out.println("重写的方法");
}
}
PersonTest.java
package com.klvchen.java1;
public class PersonTest {
public static void main(String[] args) {
Student s = new Student("计算机科学与技术");
s.eat();
s.walk(10);
System.out.println("**********************************");
s.study();
Person p1 = new Person();
p1.eat();
}
}
运行结果:
内容总结
以上是互联网集市为您收集整理的Java 基础(面向对象特征: 方法的重写)全部内容,希望文章能够帮你解决Java 基础(面向对象特征: 方法的重写)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。