原文:http://blog.youkuaiyun.com/q1059081877q/article/details/46917681
val和def都会被编译为一个方法,区别是:val会被编译器保证运行时其值不能改变,但def不同,是可以改变的。
val init : String
===>
public abstract String init()
var则不同,其会被编译为两个方法,
var init: String
====>
public abstract String init(); //类似get方法
public abstract void init_$eq(String); //类似set方法。