Key words of class of SV:
1. class & object
2. this super
3.interitance
4.encapsulation
5.polymorphism
6.abstract class
7. parameterised class
8.nested class
9.constant class
10.casting
11.scope resolution operator
12.external decleration
13.null
14.class and structers
15.pure
16.typdef class
17.copy(shallow copy,deep copy,clone)
class properties:
1.instance variables(non-static fields)
2.class variables(static fields)
3.local variables(inside the method)
4.parameter
5.constant
6.constraint
super-class sub-class
The super keyword is used from within a derived class to refer to members of the parent class. It is necessary to use super to access members of a parent class when those members are overriden by the deriverd class.
Note: When using the super within new, super new should be the first statement executed in the constructor.This is because the super class must be initialized before the current class and ,if the user code does not provide an initilization,the compiler shall insert a call to super new automatically.
In SystemVerilog, the class scope resolution operator applies to all static elements
of a class: static class properties, static methods, typedefs, enumerations,
structures, unions, and nested class declarations. Class scope resolved expressions
can be read (in expressions), written (in assignments or subroutines calls), or
triggered off (in event expressions). They can also be used as the name of a type or
a method call.
The class scope resolution operator enables the following:
1 Access to static public members (methods and class properties) from outside the
class hierarchy.
2 Access to public or protected class members of a superclass from within the
derived classes.
3 Access to type declarations and enumeration named constants declared inside
the class from outside the class hierarchy or from within derived classes.
A pure virtual method is a virtual method that you want to force derived classes to
override. If a class has any unoverridden pure virtuals, it is an "abstract class" and
you can't create objects of that type.