黑马课程学习记录:
个人理解也可以看成一个类;源代码还是.java,编译后的字节文件还是.class
抽象类中可以含有普通成员方法,但是有抽象方法的必须是抽象类或者接口,
接口中只能含有抽象方法:
创建实现类对象使用接口:
修改了一个已经被实现并且它的实现类各种投入使用的情况的接口类,类名符号 I,不是C:必须
在接口中新加的是default方法:解决的是接口升级的问题;
执行类执行的时候,创建用它的实现类:
其中,Zi zi = new Zi();等号右边new的是谁就用谁的方法,没有的话往父类找;
Fu fu = new Zi(); new子类时候会默认赠送一个子类自己的隐式的无参构造方法,这个无参构造方法中有默认赠送一个super();子类如果有的用子类,子类没有就用父类的;
其中: 静态和类有关系,和对象(new出来的)没关系,调用时是直接类名点静态方法;
一个类可以实现多个接口,为了避免有静态方法出现冲突(不同的接口类中方法一样,但是同一个实现类);
私有方法:解决代码重复问题
接口中也可添加成员变量,不过必须是static final 的且必须赋值的:
即相当于一个不可修改的常量,访问调用时还是接口名直接点变量名即可:
java类时单继承,但是接口可以多实现(继承):
构造方法就是用来创造对象,new的时候会默认赠送调用构造方法;
抽象方法就是没有方法体;
其中,zi extends fu implements myinterface{}
心得:父类和抽象类冲突时,优先父类,即继承优先于实现;