|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Есть 2 класса. Calculator и My_Calculator, меня интересует, какая разница во 2 классе, если бы вместо этой инструкции Calculator cal = new My_Calculator(); была бы эта инструкция: Calculator cal = new Calculator (); Разницы же никакой, и на мой взгляд проще будет этот вариант Calculator cal = new Calculator (); или для кого что удобнее? сталкивался с вопросами на собеседовании, но разницы никакой не вижу. //класс 1 class Calculator { int c; public void addition(int a, int b) { c = a + b; System.out.println("Сумма чисел: " + c); } public void subtraction(int a, int b) { c = a - b; System.out.println("Разность чисел: " + c); } } //класс 2 public class My_Calculator extends Calculator{ public void multiplication(int a, int b) { c = a * b; System.out.println("Произведение чисел: " + c); } public static void main(String args[]) { int a = 10, b = 20; Calculator cal = new My_Calculator(); cal.addition(a, b); cal.subtraction(a, b); } } ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2019, 21:33 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
У тебя в май калькуляторе могут быть пере определены методы тогда объект класса калькулятор будет вести себя иначе чем если ты его инстанциируешь через нью калькулятор ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2019, 22:02 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
andreykaTУ тебя в май калькуляторе могут быть пере определены методы тогда объект класса калькулятор будет вести себя иначе чем если ты его инстанциируешь через нью калькулятор Так как на практике это часто случается, но входит в противоречие с базовым принципом ООП сформулированного Барбарой Лисковой Роберт С. Мартин определил[3] этот принцип так: Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом. https://ru.wikipedia.org/wiki/Принцип_подстановки_Барбары_Лисков Видимо это из ТС пытались выманить на интервью ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 00:37 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Буквы солидаи можно трактовать и так и сяк и Холи варить на эту тему кто правее. Типа системы должны быть открыты для добавления функционала но не для изменения. Ты конечно же думаешь что они намекают что потомки не должны оверрайдить методы родителей да? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 08:42 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
andreykaTБуквы солидаи можно трактовать и так и сяк и Холи варить на эту тему кто правее. Типа системы должны быть открыты для добавления функционала но не для изменения. Ты конечно же думаешь что они намекают что потомки не должны оверрайдить методы родителей да? На самом деле это исключительно для интервью вопрос. В реальной жизни понятно, что заоверидю без сожаления и любого другого осуждать не буду. Сами принципы SOLID хороши понятно для разработки и то да се. Но если надо, то и синус может быть выше единицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 09:12 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
andreykaTБуквы солидаи можно трактовать и так и сяк и Холи варить на эту тему кто правее. Типа системы должны быть открыты для добавления функционала но не для изменения. Ты конечно же думаешь что они намекают что потомки не должны оверрайдить методы родителей да? Видимо его спросили это если бы вместо этой инструкции Calculator cal = new My_Calculator(); была бы эта инструкция: Calculator cal = new Calculator (); и он не смог ответить. Я помню что в универе на 1м курсе я тоже не понял мотивации к использованию ООП и полиморфизма. Я к тому времени неплохо знал Basic, Pascal, Assembler и тоже имел "свой" взгляд на вещи. А тут? Как ткнуть носом доказательство? Этож не теорема мать ево Пифагора. Просто best practices. Или так называемые философии программинга. Всякие Киссы. Солиды и Ягни. Попробуй их докажи когда математики нет. Это не тождество что слева там нолик и справа доказано что нолик. Да и вообще некоторым людям нужен отрезок времени длиной в жизнь чтобы понять какие-то истины. Зачем женился например? Тоже вроде как безсмысленная тема. Женидьба.... Мдя. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 10:38 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
не понял пример. Второй класс добавил метод который не нужен и не используется. Значить и сам второй класс не нужен. В чём подвох? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 10:56 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
maytonА тут? Как ткнуть носом доказательство? Этож не теорема мать ево Пифагора. Просто best practices. Или так называемые философии программинга. Всякие Киссы. Солиды и Ягни. Попробуй их докажи когда математики нет. Это не тождество что слева там нолик и справа доказано что нолик. Вот именно про это я и говорил в предыдущем топике, все эти SOLID и тд - лишь костыли, призванные улучшить изначально корявую философию ООП ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 11:51 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
PetroNotC Sharpне понял пример. Второй класс добавил метод который не нужен и не используется. Значить и сам второй класс не нужен. В чём подвох? если в дебри не вдаваться имхо надо сказать что и как себя будет вести и в чем в конце-концов различия. чела спросили - в чем разница. але. а тут народ уже в философию ударился. какие то там лисковы, солиды и всё прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 15:14 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Andrey53791Есть 2 класса. Calculator и My_Calculator, меня интересует, какая разница во 2 классе, если бы вместо этой инструкции Calculator cal = new My_Calculator(); была бы эта инструкция: Calculator cal = new Calculator (); Разницы же никакой, и на мой взгляд проще будет этот вариант Calculator cal = new Calculator (); или для кого что удобнее? сталкивался с вопросами на собеседовании, но разницы никакой не вижу. Разница на самом деле есть инициализация класса Calculator cal = new My_Calculator(); будет идти дольше и памяти займет больше Вам видимо надо было тупо ответить типо Принцип Барбары Лисков соблюден, работать будет дольше, но так же. В общем на интервью часто всякие придурки встречаются надо действовать по обстоятельтсвам и быть на чеку как в песне у Владимира Семеновича Но могут действовать они не прямиком, Шасть в купе, и притвориться мужиком. А сама наложит тола под корсет... Ты проверяй, какого пола твой сосед ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 21:32 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
вообще-то, я тоже не поняла по поводу Calculator cal = new My_Calculator() в С++, если переопределить методы Калькулятора в МайКалькуляторе, то, условно говоря, калькулятор инициализированный как Calculator *cal = new My_Calculator() будет себя вести как калькулятор (и не будет использовать оверлоад методы) Calculator *cal = new Calculator(); ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 22:37 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
SergunkaРазница на самом деле есть инициализация класса Calculator cal = new My_Calculator(); будет идти дольше и памяти займет больше а вот это похоже на правду :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 22:40 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
SergunkaAndrey53791Есть 2 класса. Calculator и My_Calculator, меня интересует, какая разница во 2 классе, если бы вместо этой инструкции Calculator cal = new My_Calculator(); была бы эта инструкция: Calculator cal = new Calculator (); Разницы же никакой, и на мой взгляд проще будет этот вариант Calculator cal = new Calculator (); или для кого что удобнее? сталкивался с вопросами на собеседовании, но разницы никакой не вижу. Разница на самом деле есть инициализация класса Calculator cal = new My_Calculator(); будет идти дольше и памяти займет больше Вам видимо надо было тупо ответить типо Принцип Барбары Лисков соблюден, работать будет дольше, но так же. В общем на интервью часто всякие придурки встречаются надо действовать по обстоятельтсвам и быть на чеку как в песне у Владимира Семеновича Но могут действовать они не прямиком, Шасть в купе, и притвориться мужиком. А сама наложит тола под корсет... Ты проверяй, какого пола твой сосед насколько больше второй вариант подъест памяти? насколько это принципиально? вы слышали про ковариантность и инвариантность? что вы с этим лисковым пристали? весь солид - это лишь набор РЕКОМЕНДАЦИЙ. причем, местами весьма спорный. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 22:42 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
mini.weblabSergunkaРазница на самом деле есть инициализация класса Calculator cal = new My_Calculator(); будет идти дольше и памяти займет больше а вот это похоже на правду :) если ты пишешь классы и строишь приложение так что у тебя один класс отъедает какие то невнятные объемы - то тут уже явно не до способов инициализации объектов. а о кое-чем другом заботиться надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 22:44 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
вопрос-то был на теорию, и я подумала, что тоже не смогла бы на него ответить. вообще-то, в подобных случаях, я говорю, что ответа не знаю, и прошу интервьюера подсказать правильный ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 23:00 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Вот еще такой вариант ответа. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2019, 23:12 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
mini.weblabвопрос-то был на теорию, и я подумала, что тоже не смогла бы на него ответить. вообще-то, в подобных случаях, я говорю, что ответа не знаю, и прошу интервьюера подсказать правильный ответ. Это довольно обычная стратегия и обычно всегда срабатывает. Так как вопрос, очевидно, с подвохом, то проще подыграть интервьюверу так как если правильно ответить это может только разодорить неокрепший разум Вон как коллега возбудился только от упоминания Барбары ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 00:18 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
mini.weblabи не будет использовать оверлоад методыих нет в примере. Что об этом разговаривать? В плюсах около 80 методов инициализации класса). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 00:35 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Вопросы с подвохом это говно вопросы потому что задаваемый с ними сам может сесть в лужу. Показав некомпетентность. Вон как коллега чуть выше ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 09:23 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Самый что ни на есть good way это на собеседовании показать фрагмент рабочего кода из проекта и обсудить его. Во первых - свежий взгляд со стороны. Во вторых еще раз исполнить duck debugging, и самому проговорить свой код. Возможно после этого и новые идеи пойдут. Не боги... как говорицца горшки обжигают. Синтетические задачи наподобие обедающих философов или спящих парикмахеров интересны только теоретикам. И далеки от практических задач которые могут возникнуть. Я к слову сам не уверен что смогу без подготовки пояснить в чём проблема парикмахера и почему она вынесена как отдельный пункт среди проблем concurrency/parallelism. Вобщем нужна подготовка. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 10:19 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
maytonСамый что ни на есть good way это на собеседовании показать фрагмент рабочего кода из проекта и обсудить его. Во первых - свежий взгляд со стороны. Во вторых еще раз исполнить duck debugging, и самому проговорить свой код. Возможно после этого и новые идеи пойдут. Не боги... как говорицца горшки обжигают. Синтетические задачи наподобие обедающих философов или спящих парикмахеров интересны только теоретикам. И далеки от практических задач которые могут возникнуть. Я к слову сам не уверен что смогу без подготовки пояснить в чём проблема парикмахера и почему она вынесена как отдельный пункт среди проблем concurrency/parallelism. Вобщем нужна подготовка. Да. к любому собесу в принципе неплохо бы подготовиться. просто с филосовскими вопросами можно не сойтись в некоторых аспектах с собеседующим. и если он малоадекватный, то ты в его глазах еще и дураком будешь впрочем, он в твоих будет самодуром как минимум. это к теме лисковых и строгих убеждений. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 12:33 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
maytonСамый что ни на есть good way это на собеседовании показать фрагмент рабочего кода из проекта и обсудить его. Во первых - свежий взгляд со стороны. Во вторых еще раз исполнить duck debugging, и самому проговорить свой код. Возможно после этого и новые идеи пойдут. Не боги... как говорицца горшки обжигают. Синтетические задачи наподобие обедающих философов или спящих парикмахеров интересны только теоретикам. И далеки от практических задач которые могут возникнуть. Я к слову сам не уверен что смогу без подготовки пояснить в чём проблема парикмахера и почему она вынесена как отдельный пункт среди проблем concurrency/parallelism. Вобщем нужна подготовка. я кстати в какой то презенташке с тусы типа джейпойнта смотрел эту тему с философами и канкарренси. ну кароче ))) если долго втыкать то проблему наверное поймешь но это такая муть. ее хорошо знать для саморазвития и умения умничать на собесах. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 12:35 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
это так же как обсасывание всяких принципов. которых не имеют четких требований и четких границ и вылупляется куча умников которые 100% уверены что именно их очерченные границы - самые правильные )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 12:36 |
|
Создание объекта Java Сабкласс = new Родитель(); разница с Сабкласс = new Сабкласс ();
|
|||
---|---|---|---|
#18+
Ну они поэтому и называются философией разработки. Я вот думаю если математик читает этот топик - он ни фига не поймет. И ещё больше убедится что программисты это шарлатаны. Любят по Фарисейски судить чужой код при этом опираясь на труды какой-то старухи Варвары. Мдя. Для ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 12:52 |
|
|
start [/forum/topic.php?fid=59&msg=39839875&tid=2121192]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
349ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 465ms |
0 / 0 |