package test;
/*
* 1、什么时候方法要进行重写?
* 如果父类中的方法已经无法满足当前子类的业务要求,需要将父类中的方法重写
*
* 2、子类如果重写父类的方法之后,子类对象调用的一定是重写之后的方法
* 3、发生方法覆盖的条件:
* 1发生在具有继承关系的两个类之间
* 2必须具有相同的方法名,相同的数据类型,相同的参数列表
* 3重写的方法不能比被重写的方法拥有更低的访问权限
* 4私有的方法不能被覆盖(多态以后)
* 5重写的方法不能比被重写的方法泡出更宽泛的异常(异常机制)
* 6构造方法无法被覆盖,因为构造方法无法被继承
* 7静态的方法不存在覆盖(多态)
* 8覆盖指的是成员方法,和成员变量无关
* 4继承最基本的作用:代码重用,继承最重要的作用:方法可以重写。
public static void main(String[] args) {
Cat a =new Cat();
a.move();
}
}
class Animal{
public void move() {
System.out.println("动物在移动!");
}
}
class Cat extends Animal{
public void move() {
System.out.println("猫在走猫步!");
}
}
/*
* 1、什么时候方法要进行重写?
* 如果父类中的方法已经无法满足当前子类的业务要求,需要将父类中的方法重写
*
* 2、子类如果重写父类的方法之后,子类对象调用的一定是重写之后的方法
* 3、发生方法覆盖的条件:
* 1发生在具有继承关系的两个类之间
* 2必须具有相同的方法名,相同的数据类型,相同的参数列表
* 3重写的方法不能比被重写的方法拥有更低的访问权限
* 4私有的方法不能被覆盖(多态以后)
* 5重写的方法不能比被重写的方法泡出更宽泛的异常(异常机制)
* 6构造方法无法被覆盖,因为构造方法无法被继承
* 7静态的方法不存在覆盖(多态)
* 8覆盖指的是成员方法,和成员变量无关
* 4继承最基本的作用:代码重用,继承最重要的作用:方法可以重写。
*/
//既然方法要重写,就是复制源代码过来,那为什么不直接在这里面写一个静态方法,然后在外面通过类名.方法访问呢,不过继承还是很有用处的感觉,
public class Test12 {public static void main(String[] args) {
Cat a =new Cat();
a.move();
}
}
class Animal{
public void move() {
System.out.println("动物在移动!");
}
}
class Cat extends Animal{
public void move() {
System.out.println("猫在走猫步!");
}
}