java - 在子类中声明与父类相同的属性

标签 java kotlin

我最近开始关注 Kotlin,并且有 Java 方面的经验。在Java中,我们可以用与父级中相同的名称来声明该字段。当我在 Kotlin 中执行相同操作时,它会给出错误 name hides member of Super type User。我在这里缺少什么?

Kotlin

open class User(protected var name: String)

class TwitterUser(var name: String) : User(name)

Java 的概念相同

public class A {
    protected String name;
}

public class B extends A {
    String name;
}

最佳答案

问题是,您隐藏了原始属性的实现。但无论如何,有一种可能性可以这样做:

open class User(protected open var name: String)

class TwitterUser(override var name: String) : User(name)

您只需考虑,这主要改变了属性的实现。您将无法单独访问 User.nameTwitterUser.name。完全一样。

关于java - 在子类中声明与父类相同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48032892/

相关文章:

java - 即使添加 mysql-con.jar 文件后,仍出现 "com.mysql.jdbc.Driver"的 ClassNotFound 异常

android - 使用 Kotlin 组合整数标志的最佳方法?

string - 如何检查字符串是否包含 Kotlin 中的子字符串?

ANDROID 如何通过适配器将我的 mutableLiveData 绑定(bind)到我的 Recyclerview

java - 非法线程状态异常?不熟悉线程

Java 上下移动图像,动画运动

java - propertiesfactorybean vs propertyplaceholderconfigurer spring?

java - 如何隔离特定于平台的 JNA 绑定(bind)?

kotlin - 如何检查 "lateinit"变量是否已初始化?

android - makeSceneTransitionAnimation 在使用 AndroidX 时显示错误