继承
常用来解决的问题:
- 代码重复
 - 加强父类
 
但这篇文章不讲怎么写继承,具体讲的什么我也不是很清楚
 假设我创建了一个Animal的父类,又接着创建一个Dog的子类;
在main方法这样创建一个名为a的Animal型的dog的对象
 Animal a = new Dog();
 //父类型引用指向子类型对象(其中也涉及“向下转型”)
 在JVM的堆栈图如下:
 
 只能在继承的条件下,才能使堆,栈类型不一样
编译过程
会进行静态绑定:
 目的:确保其能运行。
 以该例为例:
 在Animal与Dog都写了一个eat()的方法,但在Dog中进行了重写(override)。在main中调用:a1.eat();在编译过程时会识别父类中是否存在eat()的方法,如果没有在编译过程就过不去。
运行过程
会进行动态绑定:
 a执行的方法取决于该方法有没有在子类中出现:
 如果子类中有该方法就会执行子类中的方法会执行子类中的方法
 如果子类中没有该方法就会执行父类的方法










