美文网首页
Java变量重写的问题

Java变量重写的问题

作者: 伊凡的一天 | 来源:发表于2018-03-20 16:56 被阅读28次

Java中父类的同名方法会被子类重写,因此就有了面向对象编程的三大要素之一——多态!但是,如果父类和子类拥有同名属性,那么会产生什么效果呢?下面是一个例子:

public class Person {
    public String name = "father";

    public void printName() {
        System.out.println(this.name);
        System.out.println(this.getClass());
    }
}
public class Student extends Person{
    public String name = "son";
    
    public static void main(String[] args){
        Person s = new Student();
        s.printName();
    }
}

输出结果:

father
class Student

首先Student类由于继承了Person类,实际上它拥有两个属性:super.name 和 name。
调用printName() 方法时,由于printName是父类中的方法,因此这行代码:

System.out.println(this.name);

实际上已经和super.name绑定了,因此会输出father。

而这行代码:

System.out.println(this.getClass());

由于方法重写的特性,因此会输出Student。

总结:Java中不存在变量重写的概念。

相关文章

  • Java变量重写的问题

    Java中父类的同名方法会被子类重写,因此就有了面向对象编程的三大要素之一——多态!但是,如果父类和子类拥有同名属...

  • java相关

    1、Java向上转型之后调用子类的同名变量/方法的问题 总结:方法可重写,属性不可重写。父类的方法被子类覆盖,父类...

  • 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础-进阶继承,抽象类,接口 进阶继承 成员变量的特殊情况 成员函数 重写 override重写,覆...

  • 面向对象的三大基本特征和五大基本原则

    参考牢记面向对象五个基本原则;深入理解Java中的重写和重载;Java中方法的重写与成员变量的隐藏;深入理解Jav...

  • Java重写和重载的知识点(广州中软卓越)

    在学习广州中软卓越Java培训课程中,我们会遇到一些关于java重载与重写的问题:Java中重载与重写有何重要性?...

  • java变量问题

    Java语言支持的变量类型有: ·类变量:独立于方法之外的变量,用 static 修饰。 ·实例变量:独立于方法之...

  • Java 继承

    Java中继承,就是子类拥有父类的,非private的变量和方法。 注意点 不能重写final 方法 单继承,但可...

  • 继承相关

    Q:子类继承父类时,重写的变量如何继承?A:重写变量时,变量会在运行时进行类型检查,属于哪个对象就为该对象的变量值...

  • Java重写和重载

    本文参考菜鸟驿站Java 重写(Override)与重载(Overload) 重写(Override) 重写指子类...

  • Java 重写(Override)与重载(Overload)

    Java 重写(Override)与重载(Overload) 重写(Override) 重写是子类对父类的允许访问...

网友评论

      本文标题:Java变量重写的问题

      本文链接:https://www.haomeiwen.com/subject/ttubqftx.html