By default, a derived component inherits all accessible variables of its base component, including access mode, modifier, and default value.
A derived component may define additional variables by using names that are not among the variables inherited from the base component. A derived component may override the default value, modifier, and access mode of a non-final inherited variable by re-declaring a variable with the same name. When a variable is overridden, the entire content of the variable must be re-declared, including default value, access mode, and modifier. The default value is specified if and only if the overriding variable is non-abstract. The access mode may be no more restrictive than the base component mode.
When a variable is overridden, all references to the variable evaluate to the overridden value, including those in the base component.
If the derived component is declared as non-abstract, then any abstract variables declared by the base component must be overridden by the derived component.