首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java新手模板类继承遭遇奇怪有关问题,跪求前辈指教

2013-09-14 
Java新手模板类继承遭遇奇怪问题,跪求前辈指教小弟试着写教材上一个模板类的继承,遇到奇怪的错误继承类无

Java新手模板类继承遭遇奇怪问题,跪求前辈指教
小弟试着写教材上一个模板类的继承,遇到奇怪的错误继承类无法访问基类的protected变量;小弟在网上搜索无果,求各位大牛前辈指点,真心感谢
问题叙述:eclipse 报错显示继承类ActorList中extendArray()函数中继承自基类(ListUseArrray)的mySize无法访问 (cannot be resolved to a variable) 小弟实在困惑为什么protected变量在继承类中午访问,真心求前辈指点。非常感谢!!!
Java新手模板类继承遭遇奇怪有关问题,跪求前辈指教
基类ListUseArray.java 如下:

package eclipsePackage;

public abstract class ListUseArray < DataType > {
protected final static int myINITIAL_SIZE = 1;
protected int myCount;
public int mySize;
protected DataType [] myList;

public ListUseArray() {
myList = (DataType[])new Object[myINITIAL_SIZE];
mySize = myINITIAL_SIZE;
myCount = 0;
}
protected abstract void extendArray() throws ActorsAndMoviesException;
public int getCurrentSize() {
return myCount;
}
public DataType getItemAtIndex(int inIndex) {
return myList[inIndex];
}
public void addItem(DataType inItem) throws ActorsAndMoviesException {
if (myCount == mySize) {
extendArray();
myList[myCount++] = inItem;
}
}
public abstract String toString();
}


继承类 ActorList.java 如下 :
package eclipsePackage;
import eclipsePackage.ListUseArray;

// 这个public class ActorList <DataType extends ListUseArray<DataType> >类声明小弟
//摘抄自网上不懂其中含义,不知写的对不对
public class ActorList <DataType extends ListUseArray<DataType> > {
private final static int myMAX_SIZE = 20;

public ActorList() {
super();
}
protected void extendArray() throws ActorsAndMoviesException {
                // eclipse报错mySize cannot be resolved to a variable
                //不过此变量是protected的呀,小弟真心不懂
if (mySize * 2 <= myMAX_SIZE) {
int i = 0;
}
}

public String toString() {
                // eclipse报错mySize cannot be resolved to a variable


mySize = 0;
return "abc";
}
}



那个无关痛痒的Exception类(ActorsAndMoviesException.java 如下) :

[解决办法]
方法重写就是子类覆盖父类同名方法,重写的特点为方法名与父类相同,参数的个数与数据类型一一对应。
具体参考API文档:例子:
class Human
{
   public void say(int age)
   {
      System.out.println("I am a human.I am "+age);
   }
}

class Man extends Human
{
  public void say(int age)  //重写父类方法say(int age)
   {
      System.out.println("I am a man.I am "+age);
   }
}

热点排行
Bad Request.