在实现接口时,方法重写可以实现多态,泛型不可以实现多态,必须要强转才能使用

1.对于泛型看下面两个例子。

接口类
`public interface Dao {

      T selectOne(Long id, String pwd);
      T selectOne(Long id);
      T insert(Account acc);
      T[] selectAll();

}`

`
实现类
public class ArrayDao implements Dao{

private Account[]arr=new Account[3];//数组容器
 private int index;//下标

public ArrayDao() {
}
public Account[] getArr() {
    return arr;
}

public void setArr(Account[] arr) {
    this.arr = arr;
}

public int getIndex() {
    return index;
}

public void setIndex(int index) {
    this.index = index;
}
@Override
public Account selectOne(Long id,String pwd){
   
}


/**
 * 查询
 * @param id
 * @return
 */
@Override
public Account selectOne(Long id){

}
//查询所有
@Override
public Account[] selectAll(){
}

/**
 * 插入
 */
@Override
public Account insert(Account acc){
   
}`

测试类

`public static void main(String[]agrs){

  Dao dao=new ArrayDao();
  dao.selectOne();//返回的是object类型,没用到多态,编译和运行都看左边。
  ((Arraydao)dao).selctOne();//返回的是Acount类型,必须要强制转换。或者在在创建时明确类型,Dao<Account> dao=new ArrayDao();

`
}

posted @ 2020-11-10 13:56  坤仑666  阅读(208)  评论(0编辑  收藏  举报