Chapter 7 - Section 1
	
	fun main(args: Array<String>) {
		val x:Any = Any()
		println(x)
		val sup = SuperClass(42)
		println(sup)
		val sub = SubClass(53)
		println(sub)
		println(sup.multiply(100))
		println(sub.multiply(100))
	}
	open class SuperClass(anInt: Int){
		protected val _anInt = anInt
		override fun toString(): String {
			return "${this::class.simpleName} {antInt: $_anInt}"
		}
		open fun multiply(factor: Int): Int {
			return _anInt * factor
		}
	}
	class SubClass(anInt:Int): SuperClass(anInt) {
	//    override fun toString(): String {
	//        return "SubClass{anInt: $_anInt}"
	//    }
		override fun multiply(factor: Int): Int {
			return super.multiply(factor) * factor
		}
	}