java中类前面加static是什么意思?麻烦帮忙解释下下面程序运行的过程,谢谢!
publicclassSuperClass{Stringa="hello";classSubClassAextendsSuperClass{}staticclassSub...
public class SuperClass{
String a = "hello";
class SubClassA extends SuperClass{}
static class SubClassB extends SuperClass{
String a = "aaa";
}
public static void main(String args[]){
SubClassB bar=new SubClassB();
System.out.println(bar.a);
}
} 展开
String a = "hello";
class SubClassA extends SuperClass{}
static class SubClassB extends SuperClass{
String a = "aaa";
}
public static void main(String args[]){
SubClassB bar=new SubClassB();
System.out.println(bar.a);
}
} 展开
4个回答
展开全部
static 是静态的。因为main是静态的,所以它里面的函数也是静态的。又因为近者亲,输入的应该是SubClassB里面的变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序首先执行main函数
然后创建SubClassB 实例,因为SubClassB是SuperClass的子类,会先调用SuperClass的默认构造函数,然后调SubClassB的默认构造函数,程序最终输出 aaa
然后创建SubClassB 实例,因为SubClassB是SuperClass的子类,会先调用SuperClass的默认构造函数,然后调SubClassB的默认构造函数,程序最终输出 aaa
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
静态类啊。可以直接使用,不用实例化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SubClassA 和SubClassB是主类SuperClass的成员内部类,同时这两个类继承了主类SuperClass。
这里要注意,由于SubClassA 和SubClassAB类似于主类的成员变量,所以当主类SuperClass没有实例化对象前(即new SuperClass()),主类对象是不存在的,当然A和B这两个成员内部类也不存在啦。
static的作用是静态化,能够在它的类的任何对象创建之前被访问,而不必引用任何对象
加上static之后,则可把SubClassB看成已经存在了的类。
执行主函数时,new SubClassB()实例化一个对象之后,如楼上所言,先调用父类的构造方法,a=“hello”,再执行SubClassB的默认构造方法,a=“aaa”,最后输出aaa。
这个是我的理解,希望对你有帮助
这里要注意,由于SubClassA 和SubClassAB类似于主类的成员变量,所以当主类SuperClass没有实例化对象前(即new SuperClass()),主类对象是不存在的,当然A和B这两个成员内部类也不存在啦。
static的作用是静态化,能够在它的类的任何对象创建之前被访问,而不必引用任何对象
加上static之后,则可把SubClassB看成已经存在了的类。
执行主函数时,new SubClassB()实例化一个对象之后,如楼上所言,先调用父类的构造方法,a=“hello”,再执行SubClassB的默认构造方法,a=“aaa”,最后输出aaa。
这个是我的理解,希望对你有帮助
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |