码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-11-16 13:24:49      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:class   ring   long   array   one   泛型   void   ati   返回   

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类型,必须要强制转换。

`
}

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

标签:class   ring   long   array   one   泛型   void   ati   返回   

原文地址:https://www.cnblogs.com/wanyankun/p/13951052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!