我有一个名为 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)
无法正常工作,并且我在该行上收到错误。我的程序没有运行!!为什么这是不正确的?
最佳答案
尝试改变
int [] a={2,3,1,5};
至
Integer [] a={2,3,1,5};
基元数组(例如int[]
)无法自动转换为包含这些基元的装箱版本(Integer[]
)的数组。
关于java - 如何使用抽象类在java中使用多态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078345/