public class a{
public void sup()
{
System.out.println("1");
}
public class b extends a
{
public void sub
{
System.out.println("2");
}
当我实例化这样的对象并运行它时:
a ob1 = new b();
ob1.sub();
会出现编译错误,指出ob1中的sub()方法未定义。如果我想实例化类“a”的对象,它仍然可以使用类b中的方法。这样做的适当方法是什么?
答案 0 :(得分:0)
如果您有声明A ob1 = ...
,则只能使用班级A
的方法和字段。这是因为ob1
被声明为A
类型的引用。此检查在编译时完成,实际运行时类型ob1
无关紧要。
如果知道 ob1
实际引用类型为B
的对象(就像在这种情况下那样),并且您希望将其声明为{{1但是将其用作A
,您可以将其转换为B
:
B