Patrice Collardez created CMIS-936:
--------------------------------------

             Summary: The public API should be declared virtual
                 Key: CMIS-936
                 URL: https://issues.apache.org/jira/browse/CMIS-936
             Project: Chemistry
          Issue Type: Improvement
          Components: dotcmis
    Affects Versions: DotCMIS 0.6, DotCMIS 0.7
         Environment: Windows 7, DotNet 3.5
            Reporter: Patrice Collardez


The public API of DotCMIS is not completely declared virtual, and it prevents 
the polymorphism to work as expected, especially when creating a new 
ObjectFactory and specialized objects.

Long explanation:
With Java, every method is implicitly declared virtual, therefore overriding a 
method in a subclass is as simple as a redeclaration and the polymorphism works 
as intended whatever the cast of the subclass to any of its parent class or 
interface.
With C#, every method is not declared virtual, therefore redeclaring a method 
in a subclass does not make the polymorphism works: the first declaration of 
the method is used considering the cast level in the inheritance graph.
In order to have the same behavior with C# as the one we have with Java, every 
method should be declared "virtual" and every redeclaration should be declared 
"override".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to