D Language
Классы
Поиск…
Синтаксис
- class Foo {} // наследует объект Object
- class Bar: Foo {} // Bar тоже Foo
- Foo f = new Foo (); // создавать новые объекты в куче
замечания
См. Спецификацию , просмотрите раздел книги по классам , наследование и играйте в интерактивном режиме .
наследование
class Animal
{
abstract int maxSize(); // must be implemented by sub-class
final float maxSizeInMeters() // can't be overridden by base class
{
return maxSize() / 100.0;
}
}
class Lion: Animal
{
override int maxSize() { return 350; }
}
void main()
{
import std.stdio : writeln;
auto l = new Lion();
assert(l.maxSizeInMeters() == 3.5);
writeln(l.maxSizeInMeters()); // 3.5
}
Конкретизация
class Lion
{
private double weight; // only accessible with-in class
this(double weight)
{
this.weight = weight;
}
double weightInPounds() const @property // const guarantees no modifications
// @property functions are treated as fields
{
return weight * 2.204;
}
}
void main()
{
import std.stdio : writeln;
auto l = new Lion(100);
assert(l.weightInPounds == 220.4);
writeln(l.weightInPounds); // 220.4
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow