定义一个父类
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");
}
}
定义一个子类
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;
}
}
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方法里取值是不同的?
一个取自父类,一个取自子类
类的属性是存储在栈里还是堆里?