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 就会报错,
}
}