码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类和接口

时间:2015-07-23 21:31:46      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

什么是抽象类,为什么要有抽象类?

当多个类中出现相同功能,但是功能主体不同,可以进行向上抽取,这是只抽取功能定义,而不抽取功能主体。

抽象类的特点:

1. 抽象方法一定在抽象类中

2. 抽象方法和抽象类都必须被abstract关键字修饰

3. 抽象类不可以用new创建对象,因为调用抽象方法没意义。

4. 抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用;如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。抽象类不可以实例化。

特殊点:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。

抽象类的运用:模板方法。

在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这是就将不确定的部分暴露出去,由该类的子类去完成。提高扩展性,复用性。

 

  1. /* 
  2. 需求:获取一段程序运行的时间 
  3. 原理:获取程序开始和结束的时间并相减即可 
  4.  */  
  5. abstract class GetTime{  
  6.     public final void getTime(){  
  7.         long start = System.currentTimeMillis();  
  8.           
  9.         runcode();  
  10.           
  11.         long end = System.currentTimeMillis();  
  12.           
  13.         System.out.println("Millis:" + (end - start));  
  14.     }  
  15.       
  16.     public abstract void runcode();;  
  17. }  
  18.   
  19. class SubTime extends GetTime{  
  20.     public void runcode(){  
  21.         for(int x = 0; x < 4000; x++){  
  22.             System.out.println(x);  
  23.         }  
  24.     }  
  25. }  

接口

初期理解,可以认为是一个特殊的抽象类,但抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

接口是不可以创建对象的,因为有抽象方法。需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是一个抽象类。

 

格式:interface{}

接口中常见定义:常量,抽象方法

接口中的成员修饰符是固定的:

成员变量:public static final

成员函数:public abstract

记住:接口中的成员都是public的。

 

接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。

 

  1. interface Inter{  
  2.     public static final int NUM = 3;  
  3.     public abstract void show();  
  4. }  
  5.   
  6. interface InterA{  
  7.     public abstract void show();  
  8. }  
  9.   
  10. class Test implements Inter,InterA{  
  11.     public void show(){  
  12.         System.out.println("test" + NUM);  
  13.     };  
  14. }  
  15.   
  16. public class 接口 {  
  17.   
  18.     public static void main(String[] args) {  
  19.         // TODO Auto-generated method stub  
  20.         Test t = new Test();  
  21.         t.show();  
  22.     }  
  23.   
  24. }  

 

接口的特点:

一、接口是对外暴露的规则

二、接口是程序的功能扩展

三、接口可以用来多实现

四、类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口

五、接口与接口之间可以有继承关系

抽象类和接口

标签:

原文地址:http://www.cnblogs.com/huihui10/p/4671574.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!