我对在运行时如何调用方法和构造函数感到困惑,因为派生的构造函数被打印3次,高度被打印0
我试过在方法和构造函数中打印一些消息,以了解到底发生了什么
public class Derived extends Base{
public static void main(String args[]){
System.out.println("Hello World");
Derived d = new Derived();
}
protected Derived(){
System.out.println("Inside Derived Const");
showAll();
}
protected void showAll(){
System.out.println("Inside Derived showAll");
System.out.println(getClass().getName()+" : "+height);
}
double height = 106.0;
}
class Base{
protected Base(){
System.out.println("Inside Base Const");
showAll();
}
protected void showAll(){
System.out.println("Inside Base showAll");
System.out.println(getClass().getName()+" : "+height);
}
double height = 196.0;
}
Run Code Online (Sandbox Code Playgroud)
我期望输出是
Hello world
Derived : 106
Base : 196
Run Code Online (Sandbox Code Playgroud)
相反,我越来越
Hello World
Inside Base …Run Code Online (Sandbox Code Playgroud) 我只是updated到最新的 android studio 并且有了,invalidated caches and restart但在那之后我的项目文件都是红色的,android studio 无法检测到 java。每当我将鼠标悬停在红线上时,它都会显示一个configure JDK选项。我已经从 oracle 网站下载了最新的 jdk 并在 java 路径中选择了它,但这也不起作用。我无法打开设置、SDK 管理器,也无法配置 SDK。
下面是错误对话框
我尝试了以下所有选项但无法解决问题