Live2D
复制代码

10-方法的覆盖

方法的覆盖

/*
 *    关于方法的覆盖
 *    1.什么时候方法要进行重写
 *    父类中的方法已经无法满足当前子类的业务需求,需将父类中的方法进行重写
 *    
 *    2.子类如果重写父类中的方法之后,子类对象一定调用的是重写之后的方法

 *    3.发生方法覆盖的条件
 *    一、发生在具有继承关系的两个类之间
 *    二、必须具有相同的方法名、相同的返回值类型、相同的参数列表
 *    三、重写的方法不能比被重写的方法拥有更低的访问权限(但)
 *    
 *    四、重写的方法不能比被重写的方法抛出更宽泛的编译时异常(异常机制),父类中方法不抛异常,子类重写的方法
 *    	   可以抛RunTimeException
 *    
 *    五、私有的方法不能被覆盖(多态之后)
 *    六、构造方法也不能被覆盖。因为其无法被继承
 *    七、静态的方法不能被覆盖(多态之后)
 *        因为静态没有方法的覆盖,因为静态方法的访问不需要对象
 *        所以在继承类中访问不会受对象引用的影响,在多态的编译运行阶段底层一直是父类而不是子类对象
 *    八、覆盖值得是成员方法,与成员变量无关
 *    
 *    4.继承最基本的作用:代码重用  
 *      继承最重要的作用:方法可以重写
 */
package j方法的覆盖;

public class Test01 {
	
	public static void main(String[] args){
		
		//创建子类对象
		Cat c = new Cat();
		c.move();//猫在走猫步
		
		//创建父类对象
		Animal a = new Animal();
		a.move();//动物在奔跑
	}

}
//父类
class Animal{
	
	//成员方法
	public void move(){
		System.out.println("动物在奔跑");
	}
}

//子类
class Cat{
	
	//Cat的move方法应该输出:猫在走猫步
	//Animal中的move方法无法满足Cat了
	//所以要在Cat类中对Animal类中的move方法进行重新定义(方法的覆盖 方法的重写 Overwrite Override)
	public void move(){
		System.out.println("猫在走猫步");
		}
}
	
posted @ 2021-07-22 22:14  Milen-jie  阅读(64)  评论(0编辑  收藏  举报