
java缺省是什么意思
4个回答
展开全部
缺省,即系统默认状态,意思与“默认”相同。
java缺省就是java默认。
比如,缺省的构造函数,缺省的jdk版本,缺省包等。
java缺省就是java默认。
比如,缺省的构造函数,缺省的jdk版本,缺省包等。
展开全部
就是有些方法在你没有定义的前提下 会有一个默认的方法 例如每个类都有一个缺省的无参构造方法 如果你自己写了 缺省的就不存在了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“默认” 的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-08-20 · 知道合伙人数码行家
关注

展开全部
在java语言中,每个类至少有一个构造方法。如果程序中没有显式定义任何构造方法,
那么java语言将自动提供一个隐含的默认构造方法。只要程序中已经显式定义了构造方法。
那么java语言将不再提供隐含的默认构造方法。
//实例1
class Base
{
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语言将自动提供一个隐含的默认构造方法。只要程序中已经显式定义了构造方法。
那么java语言将不再提供隐含的默认构造方法。
//实例1
class Base
{
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为什么得以正确编译。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询