Java类的设计----方法的重写、覆盖
来源:互联网 发布:淘宝客佣金是谁给的 编辑:程序博客网 时间:2024/05/22 13:36
方法的重写、覆盖
在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置、重写),在程序执行时,子类的方法将覆盖父类的方法。
覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。
覆盖方法不能使用比被覆盖方法更严格的访问权限。
覆盖方法举例(1)
public class Person {
public String name;
public int age;
public String getInfo() {
return "Name: "+ name + "\n" +"age: "+ age;
}
}
public class Student extends Person {
public String school;
public String getInfo() { //覆盖方法
return "Name: "+ name + "\nage: "+ age + "\nschool: "+ school;
}
public static void main(String args[]) {
Student s1=new Student();
s1.name="Bob";
s1.age=20;
s1.school="school2";
System.out.println(s1.getInfo()); //Name:Bob age:20 school:school2
}
}
Person p1=new Person();
p1.getInfo();
//调用Person类的getInfo()方法
Student s1=new Student();
s1.getInfo();
//调用Student类的getInfo()方法
这是一种“多态性”:同名的方法,用不同的对象来区分调用的是哪一个方法。
覆盖方法举例(2)
class Parent {
public void method1() {}
}
class Child extends Parent {
private void method1() {}
//非法,子类中的method1()的访问权限private比被覆盖方法的访问权限public弱
}
public class UseBoth {
public void doOtherThing() {
Parent p1 = new Parent();
Child p2 = new Child();
p1.method1();
p2.method1();
}
}
- Java类的设计----方法的重写、覆盖
- Java类的设计----方法的重写、覆盖
- Java的方法重写(覆盖)
- Java重写的方法和覆盖
- Java重写的方法和覆盖
- C#类方法的重写与覆盖
- 方法的覆盖(重写)
- Java 中方法的重写,重载与覆盖的关系
- java重写(覆盖)的实现
- Java的重写、覆盖、重载
- C#和Java 方法重写和覆盖隐藏的区别
- Java 子类继承父类方法的重写(或者覆盖,override)
- 关于C#中类方法的重写和覆盖
- 关于C#中类方法的重写和覆盖
- 方法重载和重写(覆盖)的区别
- java的重写、重载、覆盖的区别
- 重载、重写(覆盖)、隐藏的区别--Java
- JAVA-方法的重写
- JS中this的9种应用场景及三种复合应用场景
- 模块化建立项目流程(Maven聚合模块)
- 分布式的特征和注意事项
- 观察者模式 | Observer Pattern
- MySQL详解--锁机制
- Java类的设计----方法的重写、覆盖
- 操作系统的页式管理
- 要素内部几何空间查询
- 【NOI2015模拟8.17】最短路(shortest)
- #HDU 1159 Common Subsequence
- JAVA-IO(3)操作简介
- hdu6070
- HDU 4609 3-idiots
- JS基础--常用对象