比如我有三个类
class classA{
int age;
}
class classB extends classA{
String name;
public void getinfo(classB b){
System.out.println(name+age);
}
}
_____________
class C{
public static void main(String args[]){
classB d=new classB;
b.getinfo(12,"jack");---这样就不行,用类作为参数传入到底怎么调用呢?
}
}
————————————————————
另外再问一下如果我用匿名对象调用classB的方法为什么返回的是NULL,比如我下面这么写,匿名对象到底该怎么用?
class classA{
int age;
}
class classB extends classA{
String name;
public void getinfo(){
System.out.println(name+age);
}
}
class C{
public static void main(String args[]){
new Classb().name="JACK";
new Classb().age=12;
new Classb().getinfo();
}作者: 王陶成 时间: 2012-9-6 00:08
既然接受参数的是classB b,你传入的参数就得是classB类的对象或者它的子类对象,就像下面代码改的。
class classA{
int age;
}
class classB extends classA{
String name;
public void getinfo(classB b){
System.out.println(name+age);
}
}
class C{
public static void main(String args[]){
classB b=new classB();
b.getinfo(new classB());
}
}
但结果是null0,因为classB的特有属性name和继承classA类的age属性都没有赋值,使用默认值null和0
第二个问题
匿名对象,它只在堆内存中开辟了空间,但是当运行到new Classb().getinfo();这一句,前面的new Classb().name="JACK"; new Classb().age=12; 在内存中就成了垃圾,就算给它赋了值,赋值跟没赋值差不多,到后面也不会调用到。所以说匿名对象调用属性没意义,调用方法有意义,所以你的结果会是null0,。拿匿名对象调用方法挺方便,如果一个类里面有一个方法,要调用,可以拿匿名对象调用