Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 14

Переопределение методов, суперкласс, подкласс

02.06.2016, 19:51. Показов 1297. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package MyPack;
 
class CorTriangle 
{
    double side;
    CorTriangle(double s)
        {
        side=s;
        }
    double Square()
        {
        return ((side*side*Math.sqrt(side))/4);
        }
    void perimetr()
        {
        System.out.println("Perimetr is equal "+3*side);
        }
}
 
class Prizma extends CorTriangle
{
    double height;
    Prizma(double side, double hgt)
    {
        super(side);
        height=hgt;
    }
    double Square()
    {
        return 2*super.Square()+3*side*height;
    }
    void volume()
    {
        System.out.println("volume is equal "+super.Square()*height);
    }
}
 
public class Var_6 {
    public static void main(String args[])
    {
        CorTriangle obj, obj2=new CorTriangle(3);
        Prizma prizm=new Prizma(3,4);
        System.out.println("Prizma's square - "+prizm.Square());
        prizm.perimetr();
        prizm.volume();
        obj=prizm;
        obj.perimetr();
        //obj.volume(); - Error
        System.out.println(obj.Square()+" "+obj2.Square());
        //obj2.volume(); - Error
    }
}
Как я понимаю, когда ссылочной переменной суперкласса (в нашем случае obj) присвоена ссылка на объект подкласса (prizm), мы будем иметь доступ только к тем частям объекта, которые определены суперклассом.
Но как так выходит, что obj.Square() вызывает метод подкласса Prizma, а не суперкласса CorTriangle? И если он вызывает этот метод подкласса, то почему он уже не вызывает obj.volume(), однако вызывает obj.perimetr().
Может дело в компиляторе (NetBeans 8.1)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2016, 19:51
Ответы с готовыми решениями:

Суперкласс и подкласс
Подскажите почему в результате, программа выводит на экран и текст суперкласса и подкласса, хотя должна выводить только второе (ndemo r =...

Переопределение методов
Есть два метода, в которых одинаковое количество и тип аргументов, делают они почти одно и тоже, за исключением одной строки. Как сделать...

Переопределение методов
Здравствуйте. Изучать джаву начал неделю назад по книге "Файн Я. - Программирование на Java для детей, родителей, дедушек и бабушек -...

2
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
02.06.2016, 19:59
Почитай внимательно про полиморфизм дополнительно, а если кратко то:

Если CorTriangle triangle = new Prizma();
Методы вызываются в зависимости от типа хранимого объекта (то что справа), но доступны лишь те методы которые доступны типу переменной хранящей ссылку (то что слева).
В твоем случае, ты можешь вызывать лишь те методы которые есть в классе CorTriangle. Если эти методы переопределены в классе Prizma - будут вызваны они, иначе из суперкласса.
0
0 / 0 / 0
Регистрация: 29.02.2016
Сообщений: 14
02.06.2016, 20:26  [ТС]
Цитата Сообщение от ninjacut Посмотреть сообщение
Если эти методы переопределены в классе Prizma - будут вызваны они, иначе из суперкласса.
А можно как-нибудь вызвать реализацию переопределенного метода из суперкласса,а не из Prizma?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2016, 20:26
Помогаю со студенческими работами здесь

Переопределение методов
Помогите переопределить метод boolean equals ,hashCode() , toString() ? public class FileLab { private String name; ...

Переопределение методов в интерфейсе
Ребята подскажите пожалуйста, хочу разобраться. Проблема состоит в том, что у меня не получается переопределить методы которые прописаны в...

Переопределение абстрактных методов
Добрый день! Вопрос следующий: в подклассе необходимо переопределить абстрактный метод суперкласса, нужно сменить модификатор доступа с...

Переопределение методов equals() и hashCode()
Дорогие форумчане, подскажите пожалуйста, как мне переопределить эти методы для моего класса? public class MyCollection implements...

Задача: Переопределение Методов (основы Java)
Задача : Как решить? Переопределение Методов Наш класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru