1.继承层次的设计
①找出具有共同属性和行为的对象
②设计代表共同状态与行为的类
③决定子类是否需要让某项行为(也就是方法的实现)有特定不同的运用方式
④通过寻找使用共同行为的子类来找出更多抽象化的机会
⑤完成类的继承层次
如下的设计:
方法的重写:方法名称参数必须相同,返回值类型必须兼容,访问权限不能比父类更加严格
方法的重载:两个方法的名称相同,但是参数不同(参数的顺序、类型、个数)
接口与抽象类:创建抽象类是为了避免对类公共部分的集合(类)进行实例化,如上面的Animal实例化,这样实例化的对象并不知道它代表什么动物。所以应该将Animal申明为抽象类,这样就能实例化了。因为java是单继承的,所以创建了接口,接口相当于纯的抽象类,里面的方法都是public abstract的。
变量在内存中存储的位置,栈和堆。局部变量和函数以及原生数据类型的变量存储在栈中,对象存储于堆中。
关于对象的创建,涉及到构造函数的调用。如果创建的对象存在继承关系,必须先创建父类然后创建子类。
静态变量时共享的,同一类所有的实例共享一份静态变量。
实例变量:每个实例一个。
静态变量:每个类一个,在类被加载时初始化。