Java中的父类和子类可以具有相同的实例变量吗?

用户421814:

考虑以下类:

class Parent {
 int a;
}

class Child extends Parent {
 int a; // error?
}

由于多个的声明,ain 的声明Child应该给出编译错误int a吗?

乔恩·斯基特(Jon Skeet):

child.a 阴影(或隐藏物parent.a

这是合法的Java,但应避免使用。我希望您的IDE可以为您提供警告。

但是请注意,这只是一个问题,因为您已经向世界公开了一个变量如果确保所有变量都是私有变量(将方法的API与字段的实现分开),那么父级和子级都具有相同的字段名就没关系-子级不会仍然能够看到父母的字段。如果将方法从子级移到父级,可能会造成混乱,通常它对可读性不是很好,但是比隐藏情况更好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

子类和父类中具有相同的变量

子类可以从 Python 中的父类继承实例变量吗?

子类可以与超类具有相同的列名吗?

JavaScript 父类和子类可以有同名的方法吗?

派生类中的实例变量与超类的私有实例变量具有相同的名称吗?

如果子类与父类具有相同的参数,则子类应该重写构造函数吗?

父类可以创建其子类的实例吗?

Javascript 子类中的实例方法可以调用它的父类静态方法吗?

具有相同名称的Java实例变量和方法

C#如何从子类中读取父类和子类所有变量的名称

使用不同的作用域访问子类和父类中的相同变量

没有'this()'函数的子类如何识别父类中的实例变量?

Python:更新子类中父类的实例变量

Java中的类名和变量名可以相同吗?

类变量(不是实例变量)是具有相同类类型的对象的快捷方式吗?

可以从rails的父类中包含的模块中调用父类的子类的私有方法吗?

子类可以在 Python 中与父类分开的文件中吗?

父类的私有函数导致子类中具有相同名称和相似参数的公共函数模棱两可的调用

在Java中,可以为类具有泛型类型的变量分配方法引用吗?

具有合成只读属性的类的子类无法访问Objective-C中的实例变量

是否可以从Java的子类中排除类实例变量?

我可以在父类中声明一个占位符变量,在子类中以不同类型声明它吗?

是否可以从子类和父类中绘制 QWidget?

如果与父类具有相同的数字类,则将类添加到子类

具有子类中的函数的抽象函数的C ++父类

子类访问父类中的私有成员变量

父类可以调用子类方法吗?

成员变量和本地方法变量可以具有相同的名称吗?

Java继承和后期绑定,为什么int id具有父类值而不具有子类值?