![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Приведу сокращенный вариант примеры из книги К.Мука гл. 25 стр. 706-716.
package org.moock.drawing { public class BasicShape extends Shape { public function BasicShape() { } } } package org.moock.drawing { public class Polygon extends BasicShape { public function Polygon(xpoints:Array = null, ypoints:Array = null) { super(); // Здесь все верно, т.к. конструктор класса BasicShape не имеет параметров } } } package org.moock.drawing { public class Rectangle extends Polygon { public function Rectangle(width:Number = 100, height:Number = 100) { super(); // Должно быть так super(xpoints, ypoints) } } } 1. Почему у ключевого слова super() описанного в Rectangle отсутствуют аргументы? 2. Количество и тип переменных описанных в суперклассе должен содержать и подкласс? Последний раз редактировалось goldlider; 20.10.2011 в 17:59. |
|
|||||
|
Цитата:
Т.к. то в качестве аргументов будет переданы дефолтные значения (null) 2: не понял.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
1. У класса Polygon все параметры конструктора помечены как необязательные, со значениями по-умолчанию.
2. Все переменные описанные в суперклассе наследуются и попадают в производный класс. Но обратиться из подкласса вы можете только к public и protected полям и методам.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
ChuwY,
в таком случае мы в классе Rectangle должны написать так? Последний раз редактировалось goldlider; 20.10.2011 в 18:38. |
|
|||||
|
.
|
Если вы имели ввиду количество и тип параметров конструктора суперкласса и подкласса, то — нет.
|
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Цитата:
Тогда исходя из ваших слов получается, что я могу без проблем написать вот так: и никакой ошибки не будет. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
переменные xpoints и ypoints не объявлены в подклассе, соответственно такая передача их в суперкласс приведет к ошибке Цитата:
|
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
goodguy, а почему выходит такая ошибка: "Error #1063: Несоответствие количества аргументов в Rectangle().", если мы в подклассе объявили переменные, но не присвоили значение? Ведь можно же позже присвоить значение, т.е.
Последний раз редактировалось goldlider; 20.10.2011 в 20:48. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Цитата:
Не видя всего кода сложно сказать наверняка. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|