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; // масса } }
коробка тут описывает искусственный объект созданный человеком(природа никогда бы не создала такой) и тут все идеально. Реальные объекты намного хуже и с кучей оговорок о чем нужно всегда предупреждать.
Приятной Вам возни с трупами классами
Найкращі коментарі пропустити