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())
  }
  
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PARAMETERIZE ARRAYS WITH TYPES In Scala, you can instanti...
    RxCode阅读 4,212评论 0 0
  • 《程序员》2009 05期 Twitter将部分应用从Ruby迁移到了Scala。三位开发者详谈决策背后的因素、S...
    徒劳的写阅读 5,544评论 0 3
  • 文羊组-梁腾(1034) 第一周第五次作业 A1:我是典型的购物狂,例如最近我买了特别多的口红,尽管我其实一天也涂...
    jrsjrb阅读 975评论 0 0
  • 《抱怨》 别再抱怨十几亿人的世界却找不到一个对的人选择题答案就四个你能全对 《千斤顶》 有种东西叫做千斤顶只是换备...
    何鲸洛阅读 2,849评论 0 0
  • 最近心血来潮,看到一篇关于获取iOS设备基本信息的文章,所以搜索整理了一下,里面有些是从其他地方复制过来的,亲测都...
    SwordDevil阅读 4,359评论 0 1