неділю, 3 березня 2013 р.

Java. Наслідування. Абстрактні класи.

Розглянемо найпростіший приклад наслідування з використанням абстрактних класів.
Трохи теорії:
Наслідування - це відношення між класами, при якому характеристики одного класу (суперкласу) передаються (extends) іншому (підкласу) без їх повторного опису. Підклас має доступ до всіх відкритих змінних та методів суперкласу (окрім членів класу, позначених як private ).

Абстрактний клас (abstract) - це клас, на основі якого не можна створювати об"єкти. При цьому підкласи (нащадки) можуть бути не абстрактними і, відповідно, на їх основі можна створювати об"єкти.

Завдання полягає в тому, щоб вивести на екран певний порядок елементів, що буде відрізнятися залежно від того, який підклас буде викликатися.

 // створюємо абстрактний суперклас

abstract class Window {
String sym;
String text;

public static void main(String[] args) {
// звертаємось до 1го підкласу
StarWindow obj1 = new StarWindow();
obj1.print();  
//звертаємось до 2го підкласу                                          
SparkWindow obj2 = new SparkWindow();
obj2.print();

}
 // тут вказуємо, що саме виводити на екран
void print() {     
for (int i = 1; i <= text.length() + 2; i++)
System.out.print(sym);
System.out.println("\n" + sym + text + sym); //"\n" - перенос рядка
for (int i = 1; i <= text.length() + 2; i++)
System.out.print(sym);
System.out.println();
}

}

Ну і найпростіше, підкласи:
підклас 1:

public class StarWindow extends Window {
StarWindow() {
sym = "#";
text = "ytrewq";
}

}

підклас 2:


public class SparkWindow extends Window {
SparkWindow() {
sym = "*";
text = "qwerty";
}

}


Немає коментарів:

Дописати коментар