Inheriting from Classes
This commit is contained in:
parent
8f80108665
commit
9b043f221c
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
|
@ -0,0 +1,46 @@
|
||||||
|
module inheritance;
|
||||||
|
|
||||||
|
// ****** Inheriting from Classes: Implementation Inheritance ******
|
||||||
|
import std.stdio: writeln;
|
||||||
|
|
||||||
|
class Person {
|
||||||
|
string id;
|
||||||
|
|
||||||
|
void speak() {
|
||||||
|
writeln("Hello, world!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class John: Person {
|
||||||
|
// inherits: string id;
|
||||||
|
|
||||||
|
this(string s) {
|
||||||
|
id = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
// redifining the inherited speak function of Person
|
||||||
|
override void speak() {
|
||||||
|
super.speak(); // calling the default(Person's) speak function
|
||||||
|
writeln("Hi! My id is: ", id, ".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Anna: Person {
|
||||||
|
// inherits: string id;
|
||||||
|
|
||||||
|
this(string s) {
|
||||||
|
id = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Anna inherits the default implementation
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
import inheritance;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
John john = new John("123456");
|
||||||
|
john.speak();
|
||||||
|
|
||||||
|
Anna anna = new Anna("098700");
|
||||||
|
anna.speak();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* OUTPUT:
|
||||||
|
|
||||||
|
Hello, world!
|
||||||
|
Hi! My id is: 123456.
|
||||||
|
Hello, world!
|
||||||
|
*/
|
Loading…
Reference in New Issue