Java类的设计----方法的重写、覆盖
来源:互联网 发布:跆拳道功夫大师软件 编辑:程序博客网 时间:2024/05/22 14:14
在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置、重写),在程序执行时,子类的方法将覆盖父类的方法。
覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。
覆盖方法不能使用比被覆盖方法更严格的访问权限。
覆盖方法举例(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-方法的重写
- Java 类设计----Java类的继承
- 数字转条码
- linux管道通信 半双工通信
- Java类的设计----访问控制
- spring集成redis的lettuce连接pom文件配置
- Java类的设计----方法的重写、覆盖
- StringBuilder 对tab选项字段进行分割,处理(StringBuilder的用法)
- Java类的设计----关键字super
- Python可变对象v.s.不可变对象,引用
- Java类的设计----多态性及其应用
- Java类的设计----Object 类
- 冒泡进阶
- ASP.NET 如何在.cs文件中为前端添加JS代码
- 高级类特性----static关键字