gpt4 book ai didi

Java:继承方法中使用的私有(private)变量

转载 作者:行者123 更新时间:2023-11-29 04:57:10 25 4
gpt4 key购买 nike

我是 Java 新手,据我所知,类 Shape 中的变量 drawingChar 是私有(private)的,因此它不会被类 Test 继承,但由于 setDrawingChar() 是一个公共(public)函数,因此它被继承。

public class Shape {

private char drawingChar = '*'; // private var

public void setDrawingChar(char drawingChar) {
this.drawingChar = drawingChar;
}
}
public class Test extends Shape{

public static void main(String[] args) {
Test t2 = new Test();
t2.setDrawingChar('*'); // call setDrawingChar on a Test obj
}
}

在 Test 类中,我可以通过某种方式在 Test 对象上调用 setDrawingChar(),但 Test 不继承 drawingChar 是不是真的?如果是这样,在对象 t2 的情况下,this.drawingChar 指的是什么?

最佳答案

子类将继承任何publicprotected 变量或方法,并且可以选择保留它们或覆盖它们(在方法的情况下)。这就是您可以调用方法 setDrawingChar 的原因,它会检查 Test 是否有该名称的任何方法,然后检查其父类(super class)的实现。它从 Shape 中找到实现并执行它。

请注意,您将无法使用 Shape 变量 drawingChar,因为 private 范围仅限于其他 Shape 对象而不是它们的子类

有关 publicprivateprotected 的更多信息,请访问 javadocs website for access control .

关于Java:继承方法中使用的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33345818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com