2019-1-19

一、方法的重写或方法的覆盖(overriding)

  1、子类根据需求对从父类继承的方法进行重新编写

  2、重写时,可以用super。方法来保留父类的方未能

  3、构造方法不能重写

 

二、方法重写的规则

  1、方法名相同

  2、参数列表相同或者是其子类

  3、返回值类型相同或者是其子类

  4、访问权限不能严于父类

  5、父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法

  6、子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态态方法  PS:静态方法中无法使用super

  7、父类的私有方法不能被子类覆盖

  8、不能抛出比父类方法更多的异常

     

三、重写equals方法

  写一个带名字和年龄的猫类,创建两个对象,对比是否相同

package java_2019_1_19;
//猫类
public class Cat {
	private String name;
	private int age;
	
	public Cat() {}
	
	public Cat(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	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;
	}
	@Override
     //重写equals对比方法,如果两个对象的名字和年龄一样即为相同 public boolean equals(Object arg) { if(arg instanceof Cat) { Cat a = (Cat)arg; if(a.name.equals(this.name)&&a.age==this.age) { return true; } } return false; } }
package java_2019_1_19;
//测试
public class Test {
	public static void main(String[] args) {
		Cat a1 = new Cat("小白",16);
		Cat a2 = new Cat("小白",16);
		System.out.println(a1.equals(a2));
	}
}

  结果示例:

 

posted on 2019-01-21 13:38  陈小锦  阅读(127)  评论(0编辑  收藏  举报