· 首先是一个 在控制台打印顺序的问题,第一步要看的是从子类中找到new()实例化 首先在实例化子类的对象的时候已经实例化了父类的对象所以是从要首先调用
调用父类的对象,无论子类的new()里面有没有参数都是从父类开始调用 父类的开始的调用无参的方法 执行完毕后调用子类的方法 子类的方法要看子类中对应的参数和非参数方法名如果new后面是有参数的就调用有参数的方法名 如果是无参数就调用无参数的方法名 :
关于在子类覆写父类的对象是后就是 要把父类中对应的方法下面的输出改变 用@override方法 在 这类与接口调用过程中要注意四个作用域的关键词
public 是能够访问所有的包和包下的方法 protected是能 访问相同包类的其他类
private是只能访问本类下的 同是还不能被内部类所访问(当程序出错是特别注意有没有被定义成provite或者有没有被定义成protected )
package表示 包访问权是包级访问权
对与抽象类的定义方法是public abstract class 加上一个变量名 用implements 关键词去实现一个接口
在这里特别特别要注意的事当时抽象类去继承这个接口的时候那么 不需要去写接口里面的所有的方法 而如果是非抽象类去实现的时候要去把 接口下面的所有的方法要写出来这是一个规范要记住
还有最后一点当普通的类去继承抽象类的时候一定要记住要把该类下的抽象方法也要调过来 (如何辨别抽象方法就是看方法没有方法体而又方法体的方法不是抽象方法)这里还要记住的是在调用抽象方法的时候 一定要确保抽象方法 作用域没有被provited或者默认是的包package这样的去定义一定要被public 或者被protected这样才可以被继承 这样才不会出错