我有两个班Test
和Encap
。我有一个私有变量a
,可以通过setter和getter方法访问。我就是继承类Test
用Encap
。
现在我可以更改a
using 的值setValue(int a)
。我想限制该选项。我希望它使其成为只读值。请协助我。
class Test
{
private int a;
protected void setValue(int a)
{
this.a = a;
}
protected void getValue()
{
System.out.println("The assigned value of a is : "+this.a);
}
}
public class Encap extends Test {
public static void main(String [] args)
{
Test t = new Test();
t.setValue(4);
t.getValue();
Encap e = new Encap();
e.setValue(3);
e.getValue();
}
}
一种选择是从类中 删除 方法:setValue()``Test
class Test
{
private int a;
protected void getValue()
{
System.out.println("The assigned value of a is : "+this.a);
}
}
编辑: 为什么要这样做?
如果Encap
从继承Test
,它应该能够执行与相同的动作Test
。否则,继承的目的是什么?如果您仍然认为Test
应该能够修改值而Encap
不能修改值,那么您的设计可能是错误的。您可以尝试这样的方法:
BaseClass
---------
+getValue
/ \
/ \
Test Encap
-------- ---------
+setValue
问题内容: 如何继承/扩展使用“显示原型”模式的类?有没有办法制作变量和函数? 基础对象示例: 问题答案: JavaScript中没有受保护的变量/属性。但是,当您在同一范围内声明继承类时,可以重用“私有”变量,当私有变量只是原型的“隐藏实用程序”时,这似乎是可能的。 这是JavaScript的继承方式,这意味着American的原型从Person的原型自动继承了clone(),toJSON()和
我有一个类型<code>build</code>有一个标志模板,根据活动标志位,它从这些类型继承。这使我可以从具有大量配置的许多子类中“构建”类: 所以< code >构建 但它不编译,说<code>空</code>已经是一个直接基类: 我怎样才能做到这一点,而不必创建4个不同的空结构来避免冲突呢?
子类也必须遵守第一条和第二条规则。它从超类 Cat 继承了标识属性。例如: package eg; public class DomesticCat extends Cat { private String name; public String getName() { return name; }
本文向大家介绍举例说明js如何实现继承?相关面试题,主要包含被问及举例说明js如何实现继承?时的应答技巧和注意事项,需要的朋友参考一下 JavaScript 基于原型链实现的继承,简单来说就是通过对象的实现的向上查找。 比如你从未定义过方法,但是你却可以在任何地方使用它,原因就是当你使用时,他会先在自身查找看看没有这个方法,如果没有就根据寻找他的原型对象,看看他的原型对象上有没有....知道找到为
本文向大家介绍Python实现类继承实例,包括了Python实现类继承实例的使用技巧和注意事项,需要的朋友参考一下 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,本文就举一例Python类继承的实例。 实例代码如下: 运行结果:
本文向大家介绍聊聊JavaScript如何实现继承及特点,包括了聊聊JavaScript如何实现继承及特点的使用技巧和注意事项,需要的朋友参考一下 “继承”是面向对象编程里面经常提及到的概念,它的目的是实现代码复用。JavaScript并没有“类”的概念,那么,它如何实现继承呢? (ES6有关键字class和extend,继承的语法与Java等面向对象语言类似,但是,ES6 class,只是Jav