Java中的多态、抽象类、接口

来源:互联网 发布:java string 空 编辑:程序博客网 时间:2024/05/13 23:28

一、概念

多态:父类引用指向子类对象

前提:必须有子类关系或者类实现对象接口关系

使用:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法
二、定义格式

1.普通继承

父类:[javascript] view plain copy 在CODE上查看代码片派生到我的代码片public class Fu(){}  
子类:[javascript] view plain copy 在CODE上查看代码片派生到我的代码片public class Zi extends Fu(){}  
测试类:[javascript] view plain copy 在CODE上查看代码片派生到我的代码片public class Test {      public static void main(String[] args) {          Fu f=new Zi();      }  }  

2.抽象类继承

抽象父类:[javascript] view plain copy 在CODE上查看代码片派生到我的代码片public abstract class Fu {      //定义抽象方法      public abstract void eat();  }  
子类重写父类方法:[javascript] view plain copy 在CODE上查看代码片派生到我的代码片public class Zi extends Fu {      //子类重写父类方法      public void eat(){          System.out.println("子类爱吃饭");      }  }  

3.接口实现

接口:public interface Fu {      //定义抽象方法,可省略public abstract      public abstract void eat();  }  
实现类:public class Zi implements Fu {      //实现类重写接口中抽象方法      public void eat(){          System.out.println("子类爱吃饭");      }  }  

instanceof:判断是否对象属于子类
三、多态优缺点

优点:当父类的引用指向子类对象时,隐藏了子类类型,提高了代码的扩展性。

弊端:只能使用父类共性的内容,而无法使用子类特有功能,功能有限制,此时可以通过向下转型。

小结:

多态其实就是子类继承父类之后要实现父类中的功能,这样就可以扩展子类的使用,正如上个例子中,电脑中USB功能的实现,可以传入键盘和鼠标这样就可以使得代码的复用性增强。

0 0