Anonymous inner class in Java and Scala

In Java

public class Person {
    String getName() {
        return null;
    }

    public static void main(String[] args) {
        Person person = new Person() {
            @Override
            String getName() {
                return new String("big_sheep");
            }

            int getAge() {
                return 20;
            }
        };

// illegal
//        System.out.println("Name: " + person.getName() + "with age " + person.getAge());

// legal
        System.out.println("Age: " + new Person() {
            int getAge() {
                return 20;
            }
        }.getAge());

// legal
        Person person2 = new Person() {
            @Override
            String getName() {
                return new String("big_sheep with age " + getAge());
            }

            int getAge() {
                return 20;
            }
        };
        System.out.println("Name and Age: " + person2.getName());
    }
}

In Scala

object Test {

  class Person {
    def getName(): String = {
      null
    }
  }

  def main(args: Array[String]) = {
    val person = new Person() {
      override def getName(): String = {
        "big_sheep"
      }

      def getAge(): Int = {
        20
      }
    }

// legal
    println("Name: " + person.getName() + " with age " + person.getAge())

// legal
    println("Age: " + new Person() {
      def getAge(): Int = {
        20
      }
    }.getAge())

// legal
    val person2 = new Person() {
      override def getName(): String = {
        "big_sheep with age " + getAge()
      }

      def getAge(): Int = {
        20
      }
    }
    System.out.println("Name and Age: " + person2.getName())
  }
  
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • PARAMETERIZE ARRAYS WITH TYPES In Scala, you can instanti...
    RxCode閱讀 905評論 0 0
  • 《程序員》2009 05期 Twitter將部分應用從Ruby遷移到了Scala。三位開發(fā)者詳談決策背后的因素、S...
    徒勞的寫閱讀 1,698評論 0 3
  • 文羊組-梁騰(1034) 第一周第五次作業(yè) A1:我是典型的購物狂,例如最近我買了特別多的口紅,盡管我其實一天也涂...
    jrsjrb閱讀 172評論 0 0
  • 《抱怨》 別再抱怨十幾億人的世界卻找不到一個對的人選擇題答案就四個你能全對 《千斤頂》 有種東西叫做千斤頂只是換備...
    何鯨洛閱讀 402評論 0 0
  • 最近心血來潮,看到一篇關于獲取iOS設備基本信息的文章,所以搜索整理了一下,里面有些是從其他地方復制過來的,親測都...
    SwordDevil閱讀 942評論 0 1

友情鏈接更多精彩內(nèi)容