class A{}
class B extends A{
public B(int i){
}
public String toString(){
return "q";
}
}
class C extends A{
public C(String w){
}
public String toString(){
return"w";
}
}
public class testtest{
private A a;
public void setA(A a){
this.a=a;
}
public A getA(){
return a;
}
public static void main(String args[]){
testtest q=new testtest();
q.setA(new B(8));
System.out.println(q.getA());
q.setA(new C("hello"));
System.out.println(q.getA());
}
}
我想输出的是,8和hello该怎么改这个代码
在java中,System.out.println();输出到控制台,当里面的参数不是字符串是,默认将参数转换成字符串。如果参数是一个对象,默认调用对象的toString()方法。
class A{
protected int i;
protected String w;
public int getI(){
return i;
}
public String getW(){
return w;
}
}
class B extends A{
public B(int i){
this.i = i;
}
public String toString(){
return "q";
}
}
class C extends A{
public C(String w){
this.w = w;
}
public String toString(){
return"w";
}
}
class testtest{
private A a;
public void setA(A a){
this.a=a;
}
public A getA(){
return a;
}
}
main方法下面这样调用
testtest q=new testtest();
q.setA(new B(8));
System.out.println(q.getA().i);
//或者
System.out.println(q.getA().getW());
q.setA(new C("hello"));
System.out.println(q.getA().w);
//或者
System.out.println(q.getA().getW());