首页编程java编程为什么java没有缺省包 java缺省是什么意思

为什么java没有缺省包 java缺省是什么意思

编程之家2023-10-14101次浏览

大家好,关于为什么java没有缺省包很多朋友都还不太明白,今天小编就来为大家分享关于java缺省是什么意思的知识,希望对各位有所帮助!

为什么java没有缺省包 java缺省是什么意思

java缺省是什么意思

在java语言中,每个类至少有一个构造方法。如果程序中没有显式定义任何构造方法,

那么java语言将自动提供一个隐含的默认构造方法。只要程序中已经显式定义了构造方法。

那么java语言将不再提供隐含的默认构造方法。

为什么java没有缺省包 java缺省是什么意思

//实例1

class Base

{

为什么java没有缺省包 java缺省是什么意思

Base(int i){ System.out.println("Base("+i+")");}

}

class Sub extends Base

{

Sub(){ System.out.println("Sub()");}

Sub(int i)

{

System.out.println("Sub("+i+")");

}

public static void main(String[] args)

{

}

}

/*output:

z.java:9:找不到符号

符号:构造函数 Base()

位置:类 Base

Sub(){ System.out.println("Sub()");}

^

z.java:11:找不到符号

符号:构造函数 Base()

位置:类 Base

{

^

2错误

*/

通过分析以上编译错误,原因是Base父类缺少默认构造方法,正因为Base父类定义了带参数的构造方法,以至于java语言将不再提供隐式的默认构造方法,所以代码无法通过编译。

//实例2

class Base

{

Base(int i){ System.out.println("Base("+i+")");}

}

class Sub extends Base

{

Sub()

{

super(8);

System.out.println("Sub()");

}

Sub(int i)

{

super(9);

System.out.println("Sub("+i+")");

}

public static void main(String[] args)

{

}

}

情况变得扑朔迷离起来,虽然Base父类没有显式提供无参数的默认构造方法,

而java语言也不会提供隐式的默认构造方法,但以上代码竟然正常编译通过了。

2、构造方法的显式与隐式调用

如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键字调用其他重载构造方法,

那么在生成子类的实例对象时,系统将默认调用父类无参数的构造方法。

看看真实的实例1代码:

class Base

{

Base(int i){ System.out.println("Base("+i+")");}

}

class Sub extends Base

{

Sub()

{

super();

System.out.println("Sub()");

}

Sub(int i)

{

super();

System.out.println("Sub("+i+")");

}

public static void main(String[] args)

{

}

}

原来隐式调用的super();被省略了,这下也就知道了实例2为什么得以正确编译。

为什么java安装了显示没有安装

1.首先控制台打 java-version查看是否出版本信息,没找到的就重新安装JRE,注意不是JDK,是JRE

2.如果版本信息正常,就打开IE浏览器,点工具- Internet选项-安全-自定义级别-里面有一个Java小程序脚本和活动脚本,你看看是不是把这个给禁用了。

3.如果上面正常,打开IE-工具-管理加载项-显示:所有加载项- Java-Plug In 1.x.xx_xx看看是不是被禁止了。

4.如果以上都没问题。。那么。。我也不清楚了,只能告诉你Java的一些版本和IE不兼容。。

文章分享结束,为什么java没有缺省包和java缺省是什么意思的答案你都知道了吗?欢迎再次光临本站哦!

java中 =什么意思,java中这个符号“丨=”是什么意思java用什么前端(java和前端哪个更好学)