A static method does not run-on a particular instance, and it is a collect-big date error to refer to that particular in the a static means.
A case strategy operates with the confirmed example of a category, hence such as are going to be reached as this (§11.7.12).
14.6.4 Digital actions
When a situation approach report comes with an online modifier, one experience allowed to be a virtual method. Whenever zero digital modifier can be acquired, the procedure is alleged become a non-digital strategy.
The implementation of a low-virtual experience invariant: The fresh new execution is similar perhaps the system is invoked for the an instance of the course in which it’s declared otherwise an exemplory instance of an effective derived classification. Alternatively, the fresh new utilization of an online means should be superseded because of the derived groups. The process of superseding the newest utilization of an inherited digital strategy is known as overriding one to approach (§14.6.5).
During the a non-virtual approach invocation, the newest accumulate-date brand of the fresh including ‘s the choosing grounds
In a virtual approach invocation, the fresh new manage-day types of brand new such where you to definitely invocation occurs find the actual strategy implementation so you’re able to invoke. In exact conditions, whenever a strategy called N is actually invoked which have a disagreement checklist A good towards the a situation having an accumulate-big date method of C and you may a race-day style of Roentgen (in which R is actually either C or a course produced from C ), new invocation try processed the following:
- At binding-go out, excess solution was used on C , N , and you may An effective , to select a specific approach Meters in the set of strategies announced when you look at the and you will inherited by the C . This really is demonstrated for the §11.7.8.dos.
- Up coming at run-time:
- In the event the Meters are a non-digital means, Meters try invoked.
- If you don’t, Yards is an online means, together with really derived implementation of Yards with respect to R is invoked.
For each shaadi virtual strategy announced for the otherwise handed down because of the a category, there is a lot of derived utilization of the method in accordance to that particular group. One particular derived implementation of a virtual method M in accordance so you can a course Roentgen is determined as follows:
- In the event that R comes with the releasing virtual statement of M , after that here is the very derived utilization of Yards in accordance so you’re able to R .
- Otherwise, in the event that R include an override of M , up coming this is actually the most derived utilization of Meters relating so you’re able to Roentgen .
- Or even, one particular derived utilization of Meters with regards to Roentgen try the same as many derived utilization of M in accordance with the head base family of Roentgen .
Throughout the example, An effective raises a non-digital method F and you may a virtual approach Grams . The class B introduces a different sort of non-digital approach F , therefore hiding the fresh new inherited F , and have now overrides new passed on means G . The newest example provides the efficiency:
Notice that new statement an excellent.G() invokes B.Grams , not An excellent.Grams . This is because the newest focus on-big date types of new like (that is B ), not the brand new compile-day type of the fresh such as for instance (which is A beneficial ), decides the actual strategy execution to invoke. avoid analogy
Due to the fact measures are allowed to hide inherited actions, it will be possible having a course to contain multiple virtual methods with the same trademark. It doesn’t expose a keen ambiguity problem, given that all but probably the most derived method is invisible.
the fresh C and you will D groups include two digital methods towards the same trademark: Usually the one brought by A beneficial in addition to that produced by C . The process produced from the C hides the procedure passed down away from A beneficial . Hence, the bypass statement into the D overrides the procedure delivered by C , and is also not possible for D so you can override the process delivered from the A . The fresh new example provides the new efficiency:
Keep in mind that possible invoke the hidden virtual method by accessing an exemplory case of D as a consequence of a reduced derived form of where in actuality the experience not invisible. prevent analogy