package cn.yyhl.day15;

/*
方法覆盖重写的注意事项:
1必须保证父子类直接方法的名称相同,参数列表页相同。
@overriad:写在方法的前面,用来检测是不是有效的正确覆盖重写。
这个注解就算不写,只要满足条件,也是正确的方法覆盖重写

2子类方法的返回值必须【小于等于】父类方法的返回值范围。
小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。

3子类方法的权限必须【大于等于】父类方法的权限修饰符。
小扩展提示:public > protected > (default) > private.
备注:(default)不是关键字default,而是什么都不写,留空。
 */
public class Overriad01 {

}
package cn.yyhl.day15;

public class Fu4 {
    public void method(){

    }

    public Object method1(){
        return null;
    }

    public String method2(){
        return null;
    }

    public String method3(){
        return null;
    }

    public void method4(){

    }
}
package cn.yyhl.day15;

public class Zi4 extends Fu4 {
    @Override
    public void method(){

    }

    @Override
    public String method1(){
        return null;
    }

    @Override
    public String method2(){
        return null;
    }

   /* @Override
    public Object method3(){ //错误写法,子类方法的返回值必须【小于等于】父类方法的返回值范围。
        return null;
    }*/

   /* private void method4(){//错误写法,子类方法的权限必须【大于等于】父类方法的权限修饰符。

    }*/
}