Java-программисты и некрофилы, что общего и как сказать наследованию «Хватит»
Просматривая попытки объяснить сущность ООП наконец понял что меня в нем смущало. Итак, Java как яркий представитель языка с ООП лучше всего описывает абстрактные объекты, которые никогда не существовали в реальном мире. Описать им реальные сущности намного сложнее и в этом ООПисты заимствуют опыт некрофилов. Те предпочитают иметь контакт с неподвижными объектами. Мертвый объект — хороший объект. Также объект можно надежно связать и тогда он не сможет сопротивляться попыткам запрограммировать его на Java или на Python.
Следствия этого — Java лучше всего прижилась на серверах(моргах), где занимается обработкой новых и уже существующих партий трупов. Программисты на Java получают больше всего мертвых американских президентов, что можно увидеть по статистике доу. Подобное липнет к подобному. Оракловские базы данных, конечно же, лучше всего описывают трупы сотрудников. Такие сотрудники никогда не напишут свой комент на доу и тем более их никогда не вытащишь попить пива в ближайшей забегаловке или просто на воздухе
Из этого же следует абсолютная беспомощность учебников которые пытаются объяснить ООП на примере живых сущностей. первой ссылкой по запросу «java наследование» гугль выдает страницу с таким кодом
package ru.alexanderklimov.quickcourse;
public class Animal {
String sleep(){
return "Животные иногда спят";
}
}
public class Cat extends Animal {
}
надеюсь не нужно пояснять, что приведенный класс описывает чучело кота. живой кот быстро Вас поцарапает при попытке описать его таким бредом и не согласится быть абстрактным животным. Кроме того, понятно, что абстрактное животное никогда не существовало. природа всегда развивается и коты были потомками вполне конкретных живых сущностей. По факту, все классы в Java являются абстрактными и поэтому модификатор abstract бессмыслен. Лучше говорить, что некоторые классы описывают не совсем мертвые сущности и им приписать модификатор notdead.
Термин и понятие наследования также является абсолютно некорректным, этот момент уже обсуждался на доу.
Идеальный выход из такой ситуации был бы полностью запретить использование аналогий с живыми сущностями в учебных материалах. И силами IT-сообщества предать осуждению авторов, которые их применяют. Java отлично описывает отвлеченные понятия, которые существуют только в голове их автора.
на той же странице есть отличный пример
class HeavyBox extends Box {
int weight; // вес коробки
// конструктор
HeavyBox(int w, int h, int d, int m) {
width = w;
height = h;
depth = d;
weight = m; // масса
}
}
коробка тут описывает искусственный объект созданный человеком(природа никогда бы не создала такой) и тут все идеально. Реальные объекты намного хуже и с кучей оговорок о чем нужно всегда предупреждать.
Приятной Вам возни с трупами классами
Найкращі коментарі пропустити