I am new to cache and found something different from normal oop concept. In object script a base class can be inherited from multiple subclasses(inheritance order can be left/right). If objectscript is oop, I don't know how cache supports this(unlikely to other programming language).
BaseClass
Class Inheritance.TheBaseClass Extends (%RegisteredObject,
Inheritance.TheChildClass, Inheritance.TheChildClass1) [ Inheritance = left ]
{
ClassMethod Init()
{
//do ##class(Inheritance.TheChildClass).Ping()
//do ##class(Inheritance.TheChildClass1).Ping()
do ..Ping()
do ..Pingggg()
}
}
Child Class 1
Class Inheritance.TheChildClass Extends %RegisteredObject
{
ClassMethod Ping()
{
Write "I am in Inheritance.TheChildClass",!
}
}
Child Class 2
Class Inheritance.TheChildClass1 Extends %RegisteredObject
{
ClassMethod Ping()
{
Write "I am in Inheritance.TheChildClass1",!
}
ClassMethod Pingggg()
{
Write "I am in Inheritance.TheChildClass1111111111",!
}
}
Output
I am in Inheritance.TheChildClass
I am in Inheritance.TheChildClass1111111111