【发布时间】:2018-11-08 03:53:32
【问题描述】:
这是主要的演示类
public class Ongoing{
public static void main(String[] args){
ExtendsAbstract josh = new ExtendsAbstract(5, "donkey");
System.out.println(josh.toString());
}
}
这是从抽象类扩展而来的类,tostring 方法是行不通的。
public class ExtendsAbstract extends Abstract{
private String t;
public ExtendsAbstract(int y, String t){
super(y);
this.t = t;
}
public String getString(){
return this.t;
}
public int getInt(){
return super.getInt();
}
public String toString(int y){
return(/*super.toString(y)+*/"The integer is "+ y) ;
}
}
这是抽象类
public abstract class Abstract{
private int y;
public Abstract(int y){
this.y = y;
}
public int getInt(){
return y;
}
public String toString(int y){
return("The integer is :"+y);
}
}
每次我尝试从扩展类访问 toString 方法时,它只会打印出我认为是内存地址的内容。我什至没有弄乱抽象类,它仍然这样做,有人知道为什么吗?还有一个关于抽象类的问题,它们带来了什么好处,仅仅是内存吗?因为你不能从中访问私有成员所以和普通类不一样,只是更多的限制?
【问题讨论】:
-
您正在调用 toString 的 java.lang.Object 实现(所有 java 类都继承自此)。您的 toString 实现需要一个整数。