编辑代码

class Main {  // 方法重写
	public static void main(String[] args) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。、
        dog d = new dog();
        d.cry();
		
	}
}

class animal{
    public void cry(){
        System.out.println("动物叫唤...");
    }

    public Object m1(){
        return null;
    }

     public void eat(){
        
    }

}

class dog extends animal{ 
    // 1、因为dog 是 animal 子类
    // 2、dog 的 cry 方法和 animal 的 cry 定义形式一样 ( 名称、返回类型、参数 )
    // 3、这时我们就说 dog 的 cry 方法,重写了 animal 的 cry 方法

    //细节1:子类方法的形参,方法名称要和父类的完全一致
    public void cry(){
        System.out.println("小狗汪汪叫");
    }
    // 细节2:子类方法的返回类型和父类方法返回类型一样;
    // 或者是父类返回类型的子类 比如 父类 返回类型是 Object, 子类方法返回类型是 String
    // ( String 是 Object 子类 )
    public String m1(){
        return null;
    }

    // 细节3:子类方法不能缩小父类方法的访问权限
    // public > 默认 > protected > private
    public void eat(){ // public 改成 protected 就会报错,

    }
}