class Vehicle:

	def __init__(self, name, color):
		self.__name = name 		# __name is private to Vehicle class
		self.__color = color

	def getColor(self):		# getColor() function is accessible to class Car
		return self.__color

	def setColor(self, color):		# setColor is accessible outside the class 
		self.__color = color 

	def getName(self):
		return self.__name

class Car(Vehicle):

	def __init__(self, name, color, model):
		# call parent constructor to set name and color
		super().__init__(name, color)
		self.__model = model

	def getDescription(self):
		return self.getName() + self.__model + " in " + self.getColor() + " color"

# in method getDescrition we are able to call getName(), getColor() because they are 
# accessible to child class through inheritance

c = Car("Ford Mustang", "red", "GT350")
print(c.getDescription())
print(c.getName()) #  car has no method getName() but it is accessible through class Vehicle