java中覆盖是什么意思?java方法覆盖的概念详解

KLQ 2020-07-09 11:07:30 java常见问答 5141

你知道Java什么是方法的覆盖吗?它的含义是什么呢?很多刚刚学习java的朋友对于这个概念都不是很理解,下面一起来看看吧。

其实方法覆盖一般指的就是方法重写。

在java以及一些其他高级面向对象编程语言当中,子类能够可继承父类中的方法,并不需要重新编写相同的方法。

可是,有的时候,子类不想原封不动地继承父类的方法,而是想进行一些修改,那么这个时候,就要运用到方法重写了,方法重写又被叫做是方法覆盖。

下面来通过一个例子了解一下:

public class Father
{
    public static String name1 = "父类的类变量";
    public String name2 = "父类的实例变量名";
    //定义一个类方法
    public static void classMethod()
    {
        System.out.println("Father父类通过类方法调用它的类变量:" + name1);
    }
    //定义一个实例方法
    public void instanceMethod()
    {
        System.out.println("Father父类通过实例方法调用它的实例变量:" + name2);
    }
}
public class Son extends Father
{
    public static String name1 = "子类的类变量";
    public String name2 = "子类的实例变量";
    //定义一个类方法
    public static void classMethod()
    {
        System.out.println("Son子类通过类方法调用它的类变量:" + name1);
    }
    //定义一个实例方法
    public void instanceMethod()
    {
        System.out.println("Son子类通过实例方法调用它的实例变量:" + name2);
    }
}
public class Test
{
    public static void main(String[] args)
    {
        System.out.println("\n-----------------------------------------");
        Son mySon1 = new Son();
        Father myFather1 = mySon1; //对象类型转换的上转型
        myFather1.instanceMethod();
        System.out.println("\n------------------------------------");
        Father myFather2 = new Father();
        if (myFather2 instanceof Son)
        {
            //隐式对象类型转换
            Son mySon2 = (Son) myFather2;
            //调用myFather对象的实例方法
            mySon2.instanceMethod();
        }
    }
}

其实方法覆盖就是方法重写,这个你应该都清楚了吧,希望上面的内容可以对你有所帮助哦,想了解更多java基础知识,可以继续来奇Q工具网进行了解学习。

推荐阅读:

java重写和重载的区别是什么?

重写和重载的区别是什么?有哪些区别?

矩形覆盖(思路和实现)