java——接口、多态性、对象转型

接口定义:

 默认方法:

默认方法的作用

如果在你的接口已经投入使用了,这个时候你想要在接口里面加一个方法,这个时候如果你加一个抽象方法的话,所有实现类都要改变源代码(因为实现类要把接口中的所有抽象方法都写一遍,不写就会出错)。但是如果你使用的默认方法,就相当于这个方法已经在接口中定义好了,然后你可以在其他实现类中直接继承下来(当然也可以覆盖重写),这样实现类就可以在不改变源代码的基础上面使用这个方法。

静态方法:

 

 私有方法:

 接口中常量(常量一旦赋值不能改变,变量则不一样):

 总结:

 继承父类并实现接口:

 

 多态性定义:

成员变量的访问:

 方法属于谁看的是new关键字后面的类

多态和之前继承的调用规则一模一样,实例:

 1 public class fu {
 2     int num=10;
 3     public void show(){
 4         System.out.println("父类方法");
 5     }
 6 }
 7 public class zi extends fu{
 8     int num=20;
 9     public void show(){
10         System.out.println("子类方法");
11     }
12 }
13 import static java.lang.Long.sum;
14 
15 public class Main {
16 
17     public static void main(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的使用:

原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/11599530.html