定义一个父类
[code]
public class ParentClass {
public int i=1;
public String s=new String("string---parent");
public char[] ca={'j','a','r'};
void get(){
System.out.println("i="+i);
for(int i=0;i<3;i++){
System.out.print(ca[i]);
}
System.out.println("(par-get)/n");
System.out.println("this is parent class");
}
}
[/code]
定义一个子类
[code]
public class SubClass extends ParentClass {
int i=2;
String s=new String("string---sub");
public char[] ca={'s','u','b'};
float f=10.0f;
void get(){
System.out.println("this is subclass");
System.out.println("i="+i);
for(int i=0;i<3;i++){
System.out.print(ca[i]);
}
System.out.print("(sub-get)\n");
}
void getF(){
System.out.println(f);
}}
[/code]
main方法
[code]
ParentClass p=new SubClass();
SubClass s=new SubClass();
System.out.println("---Parent---");
System.out.println(p.i);
System.out.println(p.s);
p.get();
for(int i=0;i<3;i++){
System.out.print(p.ca[i]);
}
System.out.print("\n"); System.out.println("---Sub---");
System.out.println(s.i);
System.out.println(s.s);
s.get();
[/code]
结果
[code]
---Parent---
1
string---parent
this is subclass
i=2
sub(sub-get)
jar
---Sub---
2
string---sub
this is subclass
i=2
sub(sub-get)
[/code]
为什么直接在main方法里取i,s的值,与在get方法里取值是不同的?
一个取自父类,一个取自子类类的属性是存储在栈里还是堆里?
[code]
public class ParentClass {
public int i=1;
public String s=new String("string---parent");
public char[] ca={'j','a','r'};
void get(){
System.out.println("i="+i);
for(int i=0;i<3;i++){
System.out.print(ca[i]);
}
System.out.println("(par-get)/n");
System.out.println("this is parent class");
}
}
[/code]
定义一个子类
[code]
public class SubClass extends ParentClass {
int i=2;
String s=new String("string---sub");
public char[] ca={'s','u','b'};
float f=10.0f;
void get(){
System.out.println("this is subclass");
System.out.println("i="+i);
for(int i=0;i<3;i++){
System.out.print(ca[i]);
}
System.out.print("(sub-get)\n");
}
void getF(){
System.out.println(f);
}}
[/code]
main方法
[code]
ParentClass p=new SubClass();
SubClass s=new SubClass();
System.out.println("---Parent---");
System.out.println(p.i);
System.out.println(p.s);
p.get();
for(int i=0;i<3;i++){
System.out.print(p.ca[i]);
}
System.out.print("\n"); System.out.println("---Sub---");
System.out.println(s.i);
System.out.println(s.s);
s.get();
[/code]
结果
[code]
---Parent---
1
string---parent
this is subclass
i=2
sub(sub-get)
jar
---Sub---
2
string---sub
this is subclass
i=2
sub(sub-get)
[/code]
为什么直接在main方法里取i,s的值,与在get方法里取值是不同的?
一个取自父类,一个取自子类类的属性是存储在栈里还是堆里?
public int i=1;
public String s=new String("string---parent");
public char[] ca={'j','a','r'};
void get(){
System.out.println("i="+i);
for(int i=0;i<3;i++){
System.out.print(ca[i]);
}
System.out.println("(par-get)/n");
System.out.println("this is parent class");
}
}定义一个子类public class SubClass extends ParentClass {
int i=2;
String s=new String("string---sub");
public char[] ca={'s','u','b'};
float f=10.0f;
void get(){
System.out.println("this is subclass");
System.out.println("i="+i);
for(int i=0;i<3;i++){
System.out.print(ca[i]);
}
System.out.print("(sub-get)\n");
}
void getF(){
System.out.println(f);
}}main方法 ParentClass p=new SubClass();
SubClass s=new SubClass();
System.out.println("---Parent---");
System.out.println(p.i);
System.out.println(p.s);
p.get();
for(int i=0;i<3;i++){
System.out.print(p.ca[i]);
}
System.out.print("\n"); System.out.println("---Sub---");
System.out.println(s.i);
System.out.println(s.s);
s.get();结果---Parent---
1
string---parent
this is subclass
i=2
sub(sub-get)
jar
---Sub---
2
string---sub
this is subclass
i=2
sub(sub-get)为什么直接在main方法里取i,s的值,与在get方法里取值是不同的?
一个取自父类,一个取自子类类的属性是存储在栈里还是堆里?