对不起,我没有为我的 Java 问题想出一个更好的版本。我现在正在使用 Java 版本:1.6.0_18 和 Netbeans 版本:6.8
现在来回答这个问题。
我所做的是创建了一个只有一个受保护的 int 属性的类,然后我创建了一个公共方法来将 int 属性设置为给定值。然后我创建了该类的一个对象,并使用所述公共方法将 int 属性设置为 5。现在我需要您的帮助来创建另一个类,该类将采用所述对象并公开它的受保护 int 属性。
我能想到的方法是创建一个子类来继承该类,然后创建一个方法来获取超类的 int 属性。我有点成功地创建了获取 int 属性的代码,但现在我不知道如何使用这个新的子类来引用超类的对象。
到目前为止,这是我上过的两门课:
公开课A { 受保护的 int iNumber; 公共无效 setNumber ( int aNumber ) { iNumber = aNumber; } }
公共类 B 扩展 A { 公共 int getNumber() { 返回超.iNumber; } }
我创建了一个“A”对象并使用它的方法将其属性设置为 5,如下所示:
一个 objA = 新的 A(); objA.setNumber ( 5 );
现在我想创建一个'B'的对象来输出存储在'objA'的属性中的int。我试图运行这段代码:
B objB = (B) objA; String aNumber_String = String.valueOf(objB.getNumber()); System.out.println(aNumber_String);
但我得到了错误:第一行的“java.lang.ClassCastException”
B objB = (B) objA;
请问有没有做我想做的事情?
PS我希望使这个想法可行,因为我不想通过给它一个getter方法来编辑A类(除非我别无选择)。
PPS 另外,我知道公开属性而不是将其设为私有并使用公共 setter / getter 方法是一个“坏”主意,但我喜欢这种方式:)。
编辑:添加代码标签