История изменений
Исправление system-root, (текущая версия) :
полезно абстрагироваться от субъективного
И понять, что в первую очередь Rectangle и Square не реальные геометрические фигуры а куски кода
Они представляют эти фигуры, а не разделяют отношение между этими фигурами в реальном мире
Вот пример от Роберта Мартина
import java.util.ArrayList;
import java.util.List;
public class Main {
private class Rectangle { }
private class Square extends Rectangle { }
void g() {
List<Square> squares = new ArrayList<Square>();
f(squares);
}
void f(List<Rectangle> l) {
l.add(new Rectangle());
}
public static void main(String[] args) {
new Main().g();
}
}
Error:(11, 11) java: incompatible types: java.util.List<Main.Square> cannot be converted to java.util.List<Main.Rectangle>
Исходная версия system-root, :
полезно абстрагироваться от субъективного
И понять, что в первую очередь Rectangle и Square не реальные геометрические фигуры а куски кода
Они представляют эти фигуры, а не разделяют отношение между этими фигурами в реальном мире
Вот пример от Роберта Мартина
import java.util.ArrayList;
import java.util.List;
public class Main {
private class Rectangle { }
private class Square extends Rectangle { }
void g() {
List<Square> squares = new ArrayList<Square>();
f(squares);
}
void f(List<Rectangle> l) {
l.add(new Rectangle());
}
public static void main(String[] args) {
new Main().g();
}
}