方法的重载
重载(overload):在同一个类中,声明多个同名方法,通过参数列表来区分不同的方法(参数列表的数量,类型、顺序)
示例代码:
public class Demo {
private String name;
private int age;
public static void main(String[] args) {
Demo demo=new Demo();
demo.test1();
demo.test1("张三");
demo.test1("王五", 19);
demo.test1(18, "李四");
}
//方法的重载
public void test1() {
}
//方法的重载
public String test1(String name) {
return name;
}
//方法的重载
public void test1(String name,int age) {
this.name=name;
this.age=age;
}
//方法的重载
public void test1(int age,String name) {
this.age=age;
this.name=name;
}
}
总结:
1.重载必须有不同的参数列表
2.重载对于返回类型没有要求
3.重载对于修饰符访问权限没有要求
方法的重写
重写(override):前提是发生在具有继承关系的两个类之间(子类可以继承父类非私有的方法),当父类方法不能满足子类需求时,子类可以对继承的方法进行重新编写
重写规则:
- 参数列表必须保持一致;
- 返回值类型必须保持一致;
- 方法名必须保持一致;
- 重写的方法的访问权限范围必须大于等于父类方法;
- 重写方法抛出的异常范围不能大于父类方法;
示例代码:
class ParentClass {
// x成员变量
int x;
protected void setValue() {
x = 10;
}
}
class SubClass extends ParentClass {
// 屏蔽父类x成员变量
int x;
@Override
public void setValue() { // 覆盖父类方法
// 访问子类对象x成员变量
x = 20;
// 调用父类setValue()方法
super.setValue();
}
public void print() {
// 访问子类对象x成员变量
System.out.println("x = " + x);
// 访问父类x成员变量
System.out.println("super.x = " + super.x);
}
}
调用代码如下:
public class HelloWorld {
public static void main(String[] args) {
//实例化子类SubClass
SubClass pObj = new SubClass();
//调用setValue方法
pObj.setValue();
//调用子类print方法
pObj.print();
}
}
运行结果如下:
x = 20
super.x = 10
以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!