方法覆盖

package fugai.javase;

//动物类
public class Animal {

    //动物都是可以移动的
    public void move(){
        System.out.println("动物在移动");
    }
}
package fugai.javase;

//猫科类
public class Cat extends Animal {

    public void move(){
        System.out.println("猫仔走猫步");
    }
}
package fugai.javase;

public class huamao extends Cat {

    //这里的move方法覆盖的是Cat当中的move方法
    public void move() {
        System.out.println("小花猫喵喵喵");
    }
}
package fugai.javase;

/**
 * 回顾java语言当中方法的重载:
 *         
 *         1、方法的重载又称为Overload
 * 
 *         2、方法的重载什么时候使用?
 *             当在同一个类当中,方法完成的功能是相似的,
 *            建议方法名相同,这样方便程序员编程,
 *             就像在调用一个方法似的。代码美观
 * 
 *         3、什么时候满足构成方法重载?
 *             * 在同一个类当中
 *             * 方法名相同
 *             * 参数列表不同:类型、顺序、个数
 * 
 *         4、方法的重载和什么无关?
 *             * 和方法的返回值类型无关
 *             * 和方法的修饰符列表无关
 * 
 * 关于java语言当中方法的覆盖:
 * 
 *         1、方法覆盖又被称为方法重写,英文:override
 * 
 *         2、什么时候使用方法重写?
 *             当父类中的方法已经无法满足当前子类的业务需求,
 *             子类有必要将父类中继承过来的方法进行重新编写,
 *             这个重新编写的过程称为方法的重写/方法覆盖
 * 
 *         3、什么条件满足之后方法会发生重写?
 *             * 方法重写发生在具有继承关系的父子类之间
 *             * 方法重写的时候:返回值类型相同,方法名相同,形参列表相同
 *             * 方法重写的时候:访问权限不能更低,可以更高
 *             * 方法重写的时候:抛出异常不能更多,可以更少
 * 
 *         4、建议方法重写的时候尽量复制粘贴,不要编写,容易出错
 * 
 *         5、注意:
 *             私有方法不能继承,所以不能覆盖
 *             构造方法不能继承,所以不能覆盖
 *             静态方法不存在覆盖
 *             覆盖只针对方法,不谈属性
 */
public class OverrideTest01 {

    public static void main(String[] args){
        
        //创建动物类
        Animal a = new Animal();
        a.move(); //动物在移动
        
        //穿件猫科类动物对象
        Cat c = new Cat();
        c.move(); //猫仔走猫步
        
        huamao hm = new huamao();
        hm.move(); //小花猫喵喵喵
    }
}

 

posted @ 2020-08-12 23:23  Lerresino  阅读(170)  评论(0)    收藏  举报