方法的重载和重写简述

方法的重载(overload)

  • 在同一个类中方法名相同,参数列表不同(个数不同,类型不同,顺序不同)
  • 和返回值和权限修饰符无关
方法重载示例(构造方法)
package waking.test.cc;
/**
 * 方法的重载
 * @author waking
 *
 */
public class Demo01 {
	private int id;
	private String name;
	private String kind;
	private int age;
	
	//构造方法的重载
	public Demo01() {
		super();
	}


	public Demo01(int id, int age) {
		super();
		this.id = id;
		this.age = age;
	}


	public Demo01(int id, String name, String kind) {
		super();
		this.id = id;
		this.name = name;
		this.kind = kind;
	}


	public Demo01(String name, String kind, int age) {
		super();
		this.name = name;
		this.kind = kind;
		this.age = age;
	}


	public Demo01(int id, String name, String kind, int age) {
		super();
		this.id = id;
		this.name = name;
		this.kind = kind;
		this.age = age;
	}
	
}

方法的重写(override)

  • 在继承的过程中,子类从父类继承过来的成员变量或方法无法满足自己的需求,可以在子类完善父类的方法,这个过程叫做方法的重写,方法的重写相当于子类覆盖父类的方法
代码示例
package waking.test.cc;
/**
 * 方法的重写
 * @author waking
 *
 */
public class Demo02{
//测试类
	public static void main(String[] args) {
		Stu s = new St();
		s.study();//我很爱学习!!     你可以好好学习吗?
	}
}
class Stu{
	private String name;
	private int age;
	private String gender;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	
	public void study() {
		System.out.println("我很爱学习!!");
	}
	
}
class St extends Stu{
	//方法的重写
	@Override
		public void study() {
			// TODO Auto-generated method stub
			super.study();
			System.out.println("你可以好好学习吗?");
		}
} 
方法的重写和方法的重载的区别
方法的重载:Overload,在同一个类中,方法名相同,参数列表不同,互为重载方法。
方法的重写:Override,在继承的过程中,在子类重写父类继承过来的方法,方法名,参数列表,返回值类型必须相同,访问权限符不能比父类更严格
有关方法重写之后的调用
  • 只要在子类中重写父类的方法,通过子类对象调用该方法一定是子类重写的方法
  • 通过父类对象调用该方法,先调用父类的方法,在调用子类中的方法,上面列子可以体现
发布了16 篇原创文章 · 获赞 15 · 访问量 2390

猜你喜欢

转载自blog.csdn.net/weixin_43688349/article/details/104069634