【发布时间】:2015-01-20 14:26:07
【问题描述】:
我有一个名为 Parent 的抽象类,其中包含 2 个抽象方法,我想在扩展 Parent 类的其他类中覆盖它们。
这是我的代码:
abstract class Parent<T>
{
public T a[];
public abstract void sort(T a[]);
public abstract void searc(T a[]);
}
class B_Sort<T> extends Parent<T>
{
@Override
public void sort(T[] a) {
for(int i =1; i< a.length; i++){
for(int j = 0; j < (a.length - i); j ++){
if((((Comparable) (a[j])).compareTo(a[j+1])) > 0){
T tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
@Override
public void searc(T[] a) {
}
}
这是我运行程序的主要类和主要方法:
public class ProjectX
{
public static void main(String[] args) {
int [] a={2,3,1,5};
Parent<Integer> cc=new B_Sort<>();
cc.sort(a);
}
}
但是,cc.sort(a) 无法正常工作,我在该行出现错误。我的程序没用!!为什么这是不正确的?
【问题讨论】:
-
如果有错误,请贴出来,这样会更容易帮到你:)
-
@Nizil 不,我的 Netbeans IDE 在那一行的标题是红色的,我的程序没有运行
-
你的 searc() 方法是空的!它应该做什么,它没有做什么?也像 Nizil 说的,请发布错误
-
您应该将参数
T更改为T extends Comparable。这样你就不必强制转换了,而且你在运行时ClassCastExceptions 是安全的。
标签: java class inheritance polymorphism abstract