top of page

InnerClass, Interface, Virtual and Abstract class

public with sharing class OuterClass { //Static final variable - outer class only public static final Integer MY_INT; //Static variable can be initialized where the variable is defined static{         MY_INT = 4;     } //non-final variable to communicate state across triggers //within a single request public static String sharedState; // Member variable for outer class private final String m;     { m='a';     } public OuterClass() {     } //Static method - outer class only public static Integer getInt(){ return MY_INT;     } public String getM(){ return m;     } public String InvokeInnerClassMethod(){ InnerClass ic = new InnerClass(); return ic.myInterfaceMethod();     } // Inner interface public virtual interface MyInterface { // No access modifier is necessary for interface methods - these are always  // public or global depending on the interface visibility String myInterfaceMethod();     } public virtual class InnerClass implements MyInterface{ // Because it is declared virtual it can be overridden by a subclass public virtual String myInterfaceMethod(){ return 'hello';         }     } //an abstract class should have atleast a method without body public abstract class MyAbstractClass extends InnerClass{ //use override when the child class overrides the parent class method public override String myInterfaceMethod(){ return 'World';         } //method without body should be declared abstract public abstract void noBodyMethod();     } public class ChildAbstractClassImplementer extends MyAbstractClass{ public override void noBodyMethod(){ Integer i = 5;         }     } }

Recent Posts

See All

Comments


Post: Blog2_Post

©2020 by SalesforceDemystified. Proudly created with Wix.com

bottom of page