abstract class Employee { // This needs to be implemented abstract calculatePay (): number; // This needs to be implemented abstract reportHours (): number; // let's assume THIS is going to be the // same algorithm for each employee- it can // be shared here. protected save (): Promise<any> { // common save algorithm } }
class HR extends Employee { calculatePay (): number { // implement own algorithm } reportHours (): number { // implement own algorithm } }
class Accounting extends Employee { calculatePay (): number { // implement own algorithm } reportHours (): number { // implement own algorithm }
class MySQLConnection implements DBConnectionInterface { public function connect() { return "Database connection"; } } class PasswordReminder { private $dbConnection; public function __construct(DBConnectionInterface $dbConnection) { $this->dbConnection = $dbConnection; } }
`catkin VERB -h` for help on each verb listed below: build Builds a catkin workspace. clean Deletes various products of the build verb. config Configures a catkin workspace's context. create Creates catkin workspace resources like packages. env Run an arbitrary command in a modified environment. init Initializes a given folder as a catkin workspace. list Lists catkin packages in the workspace or other arbitray folders. locate Get the paths to various locations in a workspace. profile Manage config profiles for a catkin workspace.