Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Drylozav
2 / 2 / 0
Регистрация: 03.02.2013
Сообщений: 34

Конструкторы в Java

29.12.2013, 00:55. Показов 1338. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Читаю Хорстманна и в главе о наследовании про конструкторы написано: "Если конструктор подкласса не вызывает явно ни одного конструктора суперкласса, то автоматически вызывается конструктор по умолчанию, принадлежащий данному суперклассу. Если в суперклассе нет конструктора по умолчанию, а конструктор подкласса не вызывает явно другой конструктор суперкласса, то компилятор Java отобразит сообщение об ошибке." И смотрю на пример:
Java
1
2
3
4
5
6
7
8
9
10
11
public class A {
 
}
class B extends A {
    B() {
 
    }
    B(int k) {
        this();
    }
}
Я не пойму в этом примере, почему собственно Java не кидает сообщение об ошибке ? Ведь не вызывается ни один конструктор суперкласса (в этом классе вообще нет конструкторов)? (Ведь this() вызывает другой конструктор ТОГО ЖЕ класса). Или в классе A есть конструктор, но он неявный ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.12.2013, 00:55
Ответы с готовыми решениями:

Конструкторы и объекты JAVA
Всем привет, помогите с решением пожалуйста. Не понимаю. 1) Создайте класс MyLine. 2) Создайте внутренний класс MyPoint с...

Java конструкторы и методы
Создать подкласс для работы с большими числами(имеющие большое число разрядов и позволяющие хранить числа больше, чем long) с плавающей...

Где, согласно java code convention должны располагаться конструкторы класса?
Где, согласно java code convention должны располагаться конструкторы класса

6
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
29.12.2013, 01:10
Java
1
2
        A a = new A(49); //Ошибка
A b = new B(49); //Конструктор берется из подкласса
0
 Аватар для Drylozav
2 / 2 / 0
Регистрация: 03.02.2013
Сообщений: 34
29.12.2013, 01:13  [ТС]
Вопрос состоит в том, что скомпилируется ли данная пара классов или нет? И получается, что ответ почему то скомпилируется
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
29.12.2013, 01:20
читайте дальше, примерно по памяти "если в классе явно не создан ни один конструктор - то конструктор по умолчанию *тойсь пустой* создается автоматически"
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
29.12.2013, 01:21
а почему им не скомпилироваться? У вас подкласс B расширяет функциональность суперкласса A. Разве подклассы не для этого создаются? =)
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
29.12.2013, 01:21
тойсь в классе А сейчас "невидимый для глаз" конструктор есть
А() {

}

но стоит вам создать любой другой конструктор - как сразу же "по умолчанию" конструктор пропадет и вы получите заветную ошибку
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
29.12.2013, 01:35
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    class A {
        A (int k)
        {
            
        }
 
    }
    class B extends A {
        B() {
 
        }
        B(int k) {
            this();
        }
    }
Вот и ошибка

Тут уже придется явно объявить в класса А конструктор без параметров
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    class A {
        A (int k)
        {   }
 
        A() 
        {   }
    }
    class B extends A {
        B()
        {
          
        }
        B(int k) {
            this();
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2013, 01:35
Помогаю со студенческими работами здесь

Webpack собирает проект, а приложение говорит что мои конструкторы не конструкторы
Помогите пожалуйста, в едином файле (не билде) всё работает хорошо, как только начинаю отделять классы и создавать билд, сразу ошибка в...

Определите класс матриц. Напишите перегруженные конструкторы для создания одномерной и двумерной матриц. В конструкторы передаются размерности матриц
Доброго времени суток всем) Извините если не в том разделе) Не могу понять как решить данную задачу "(Определите класс матриц....

Конструкторы базовых классов ("Производный класс не наследует конструкторы базовых классов")
Как следует понимать выражение "Производный класс не наследует конструкторы базовых классов", если в конструкторе производного класса...

Exception in thread "main" java.lang.IllegalArgumentException: illegal component position at java.desktop/java.awt.Cont
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class...

Конструкторы С++
Всем привет, помогите довести программу до ума :) Заранее благодарю откликнувшихся :) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru