关于子类重写父类方法的问题

关于访问修饰符对重写父类方法的影响

  • 结论
    • 代码样例
    • 子类

结论

子类重写父类的方法;
1.父类中私有方法不能被重写。因为父类私有方法子类根本无法继承。
2.父类中方法有final修饰的不能被重写
3.子类所重写的方法的访问修饰符必须高于或者等于父类的访问修饰符。
4.如果父类的方法有返回值类型,则子类对应的方法的返回值须于父类相同或者是父类返回值的派生类(jdk1.5版本及以后的版本

代码样例

import java.util.ArrayList;
import java.util.List;

public class Person {

    public List method1(){
        System.out.println("Person method1");
        return null;
    }

    protected ArrayList method2(){
        System.out.println("Person method2");
        return null;
    }

    void method3(){
        System.out.println("Person method3");
    }

    private void method4(){
        System.out.println("Person method4");
    }
}

子类

重写method1方法,返回值为派生类
重写method2方法,子类的访问修饰符高于父类的访问修饰符

import java.util.ArrayList;

public class XiaoMing extends Person{

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

    @Override
    public ArrayList method2() {
        return super.method2();
    }

    @Override
    void method3() {
        super.method3();
    }
}

你可能感兴趣的:(基础知识)