Розширений клас java

private final String name;

private Object value = null;

public Attr (String name)

publiс Attr (String name, Objeсt value)

public String getName ()

public Object getValue ()

public Object setValue (Object newValue)

Object oldVal = Value;

public String toString ()

return name + "= '" + value "'";

Наступний клас, який ми розглянемо, розширює (extends) поняття атрибуту, дозволяючи доповнити його інформацією про колір. Опис кольору задається або ім'ям, таким як "червоний" або "сірувато-бежевий", яке має Існувати в деякій таблиці, або числом, що допускає можливість перетворення з метою отримання стандартної, більш ефективної форми Уявлення кольору, названої нами (мається на увазі, що відповідний клас визначений раніше). Операція перетворення опису кольору в об'єкт типу трудомістка, тому нам хотілося б виконувати її тільки один раз. Ми розширюємо клас Attr і створюємо на його основі.

class ColorAttr extends Attr

private Screencolor myColor; // Декодований колір

public ColorAttr (String super (name, value)

public ColorAttr (String name)

public ColorAttr (String name, ScreenColor value)

public Object setVal (Object newValue)

// спочатку викликаємо setvalue базового класу

Object retval = super.setvalue (newValue);

/ ** присвоювання в myColor об'єкта * screenColor, а не опису * /

public screenColor setvalue (screencolor newValue)

// Спочатку викликаємо setvalue базового класу

ScreenColor oldValue = myColor;

/ ** отримання об'єкта screenColor * з декодувати кольором * /

public screenColor getColor ()

/ ** присвоювання в myColor значення,

* Отриманого з опису в value * /

protected void decodeColor ()

if (getValue () == null)

myColor = new screenColor (getValue ());

Новий клас ColorAttr успадковує (розширює) клас Attr - він здатний виконувати всі функції класу Attr і наділений новими. Таким чином, Attr це базовий клас, а СоlorАttr - похідний. Ієрархію класів - в напрямку від похідних до базового - в даному випадку можна зобразити таким чином Color -> Attr -> Object.

Розширений клас ColorAttr виконує наступне:

· Пропонує три версії конструкторів - два з них "дзеркально" відображають функції конструкторів базового класу, а третій безпосередньо взаємодіє з об'єктом screenColor;

· Одноразово переопределяет і перевантажує метод setValue базового класу таким чином, щоб забезпечити можливість завдання нової колірної складової атрибута;

· Містить новий метод getColor, який повертає значення, яке представляє собою опис кольору, перетворене в об'єкт ScreenColor.

У наступних розділах ми постараємося розповісти про тонкощі успадкування і про ТОМ вплив, якому в ході цього процесу піддаються різні члени класу.

Схожі статті