Đọc mã của người khác, tôi đã nhìn thấy rất nhiều:Tại sao trước tiên chúng ta khai báo các kiểu con là siêu kiểu của chúng trước khi chúng ta khởi tạo chúng?
List<E> ints = new ArrayList<E>();
Map<K, V> map = new HashMap<K, V>();
Câu hỏi của tôi là: điểm là những gì/lợi thế của instantiating chúng theo cách đó như trái ngược với:
ArrayList<E> ints = new ArrayList<E>();
HashMap<K, V> map = new HashMap<K, V>();
gì cũng làm cho nó kỳ lạ là tôi chưa bao giờ thấy bất cứ điều gì như:
CharSequence s = new String("String");
hoặc
OutputStream out = new PrintStream(OutputStream);
Bản sao (của phần đầu tiên của câu hỏi):
When/why to use/define an interface
Use interface or type for variable definition in java?
When should I use an interface in java?
why are interfaces created instead of their implementations for every class
What's the difference between these two java variable declarations?
Chấp nhận điều này là câu trả lời vì trong khi nó cũng là kỹ lưỡng nhất bằng cách cung cấp một ví dụ thực tế, phần thứ hai của câu hỏi của tôi được trả lời tốt nhất ở đây. – chrisdotcode