继承和成员方法的关系,重载和重写day08

/*
    继承和成员方法的关系
        1、寻找规则:现在本类中寻找,若找到就使用;若本类中没有对应方法,就使用继承自父类中的方法,如果还是没有,就报错。
        2、java中所有的类都有一个共同的父类:Object
        3、如果子类中的方法的返回值类型,方法名,参数列表都与父类中一样,这样的现象叫做方法的重写(覆盖),建议使用@Override来表示


    面试题:重载和重写的区别(Overload和Override的区别?)
        Overload重载:发生在同一个类中的,方法名一样,参数列表不一样,与返回值无关。
        Override重写:发生在继承关系中的,返回值类型,方法名,参数列表都要一样,只是方法体实现不一样。

    重写的注意事项:
        1、重写后的方法,权限不能比父类中的方法的权限要低,一般情况下,重写的方法权限与父类的方法保持一致
        2、父类静态方法,子类无法重写,静态的成员方法随着类

 */

//class GrandFather1 {
//    public void fun1() {
//        System.out.println("泡澡");
//    }
//}

class Father1 {
    public void fun1() {
        System.out.println("游泳");
    }

    private void show1(){
        System.out.println("学习");
    }

    void show2(){
        System.out.println("打电话");
    }


    public static void show3(){
        System.out.println("吃饭");
    }


    public void show4(){
        show1();
        System.out.println("你好世界");
    }
}

class Son1 extends Father1 {

    @Override
    public void fun1() {
        System.out.println("花式游泳");
    }

//    @Override
//    private void show1(){
//        System.out.println("使用电脑学习");
//    }

    @Override
    public void show2(){
        System.out.println("边打游戏边打电话");
    }

//    @Override
    public static void show3(){
        System.out.println("边看电视边吃饭");
    }

//    @Override
//    public int show4(){ // 返回值类型也要和父类保持一致
//        System.out.println("你好java");
//        return 10;
//    }
}

class Demo2 {

}

public class ExtendsDemo6 {
    public static void main(String[] args) {
        Son1 s1 = new Son1();
        s1.fun1();
//        s1.show3();
        s1.show4();

    }
}
posted @ 2024-08-04 21:52  ていせい  阅读(26)  评论(0)    收藏  举报