OutputStream 是抽象類,**不能直接 `new OutputStream()` 實例化**,但**可以通過多態持有其子類實例並調用抽象方法**。
OutputStream os = socket.getOutputStream(); // 返回 SocketOutputStream (OutputStream 子類)
os.write("加油".getBytes()); // 調用子類實現的 write(byte[])
Socket.getOutputStream() 返回具體實現類(如 SocketOutputStream)的實例。OutputStream,運行時動態分派到子類的 write() 實現。getOutputStream() 即工廠方法,屏蔽具體創建細節。不實例化抽象類 ≠ 不能調用其方法。**只要拿到子類實例(由 API 返回),即可通過抽象類型引用調用其定義的方法**。