根據我的理解,如果調用方法被重寫,那麼方法是根據運行時的對象來決定的。 例如。 class A
{
void fun1()
{
System.out.println("fun1 of clss A");
}
}
class B extends A
{
void fun1()
{
System.out.println("
case class A(a:Int, b:Int) {
def f(){println(a)}
}
val o1 = A(3,3)
val o2 = new A(o1.a,o1.b) {override def f(){println(b)}} //too long when there are a lot of parameters
這裏我必須將o1參數傳遞給o2,但在現
我瞭解到,如果具有相同簽名的方法,我可以重寫該方法。 但是,派生類中的重寫方法的返回類型可以是超類方法返回類型的子類型。如果上面提供的聲明是正確的,任何人都可以告訴我這段代碼有什麼問題嗎? class Base{
public int getValue(){ return 222; } //1
}
class Sub extends Base{
public byte g
我覺得輸出是直的2 child 2,但它原來是child 1 2 ??? 由於家長指向孩子,應該使用孩子的變量和方法,但是在孩子的字符串後面打印1。爲什麼字符串在s.i之前打印?以及爲什麼它指的是我父母的副本? 這裏是我的示例代碼: public class Abc
{
int i=1;
public int getStr()
{
system.out.p