接口定义:
默认方法:
默认方法的作用:
如果在你的接口已经投入使用了,这个时候你想要在接口里面加一个方法,这个时候如果你加一个抽象方法的话,所有实现类都要改变源代码(因为实现类要把接口中的所有抽象方法都写一遍,不写就会出错)。但是如果你使用的默认方法,就相当于这个方法已经在接口中定义好了,然后你可以在其他实现类中直接继承下来(当然也可以覆盖重写),这样实现类就可以在不改变源代码的基础上面使用这个方法。
静态方法:
私有方法:
接口中常量(常量一旦赋值不能改变,变量则不一样):
总结:
继承父类并实现接口:
多态性定义:
成员变量的访问:
方法属于谁看的是new关键字后面的类
多态和之前继承的调用规则一模一样,实例:
1 public classfu {2 int num=10;3 public voidshow(){4 System.out.println("父类方法");5 }6 }7 public class zi extendsfu{8 int num=20;9 public voidshow(){10 System.out.println("子类方法");11 }12 }13 import staticjava.lang.Long.sum;14
15 public classMain {16
17 public static voidmain(String[] args) {18 zi one = new zi(); //20 父类方法 这里时最后面两行代码的结果
19 fu one = new zi(); //10 子类方法
20 System.out.println(one.num);21 one.show();22 }23
24 }25
成员方法的访问(和之前有不同):
上面的obj.methodZi这个代码会报错,因为编译的时候看的是左(Fu obj),这个时候Fu中没有methodZi这个方法,所以都执行不到“运行看右(new Zi)这个代码”
多态性的好处(感觉不出来好在哪里T_T):
向上/下转型:
向上转型缺点:转型过后可能子类的某些特有方法无法使用
instanceof的使用: