In Solidity, inheritance enables a general extension of functionalities of one contract to another contract.
Contract can inherited from an other contract by using the keyword is .
internal
properties and methods will also be derived by the new contract.private
properties and methods from the original contract will not be inherited. They are only available from the contract they are defined into.