程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 泛型-抽象類如何將子類作為成員的類型

泛型-抽象類如何將子類作為成員的類型

編輯:編程綜合問答
抽象類如何將子類作為成員的類型

想寫一個List,其中Node的定義如下:

 public abstract class Node{
    public Node son=null;//為了測試方便,使用public
    //……還有好多
}

這樣是想以後用的時候可以繼承Node再添加實體。顯然這麼定義是不行的,因為以下代碼可以通過:

A a=new A();//A extends Node
a.son=new B();//B extends Node

那麼怎麼定義呢?
PS:如果寫成

 public class Node<T>{
    private Node son=null;
    private T t=null;
}

這樣然後實體作為參數傳給Node可以實現的這種事情我也是知道的。單純是覺得不美麗。

最佳回答:


不知道你要表達什麼意思。
son 定義為私有,定義公有的 getSon/setSon,那麼子類重寫 setSon() 可以對賦值的類型進行校驗啊。
A 子類的 setSon 只接受 A 不接受 B(如果B沒有繼承A的話)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved