最赞回答 / Molldy
静态变量和静态方法随类的加载而加载,若此时未创建类的对象则内存中并没有非静态变量,所以静态方法访问非静态变量会出错。而普通的成员方法需要通过对象调用,此时堆内存中存放了非静态变量,可以直接访问非静态变量。
2019-08-08
最赞回答 / 慕虎3472736
一开始传入的obj为Object类型,Object是所有类的父类Dog other=(Dog) obj的意思是把参数obj(对比对象)强制转化为Dog类型,实例化成Dog类型的other对象并非把Dog2转换成Object类,Dog2是引用,而是Dog类的父类就是Object类,Object是所有类的父类
2019-08-04
最赞回答 / qq_慕粉0176318
以下解释摘自<<Think in java>> 中文版第2版, “构造函数是一种很特殊的函数,因为他没有返回值。这和‘返回值为void’有极大的差别。返回void时,一般函数并不返回任何东西,但是一般的函数能够选择是否要返回些什么东西。构造函数则绝对不返回任何东西,而且你也没有任何选择。如果它有一个返回值,而且你有权利选择你自己的返回型别(return type),编译器势必得通过某种方式来知道如何处理那个返回值。” void 其实有返回值,但是函数不返回任何东西,一...
2019-07-30
最新回答 / AndrewOVO
super如果要调用父类的局部变量的值,你可以先用super去get父类你想要的局部变量值的类,例如:super.eat(),然后再去点eat里面的局部变量。super.eat().age;(应该是这样?)
2019-07-30