uperの小鬼 发表于 2014-6-9 21:11

java开发中 抽象类和接口的区别

abstract class 抽象类--不具体的类

abstract: 抽象的, 是指不够具体, 概念性的

1) 抽象方法,只有行为的概念,没有具体的行为实现。
   使用:abstract 关键字修饰,并且没有方法体。
2) 包含抽象方法的类,就一定是抽象类。
   使用: abstract 关键字修饰,包含抽象方法。
如:平面图形一定可以计算面积。

3) 抽象类不能直接创建实例。可以定义引用变量。
4) 抽象类只能被继承,一个具体类继承一个抽象类,必须实
   现所有抽象方法。
5) 抽象方法和抽象类非常适合作为系统的分析和设计的工具。
        public class abstract CRMSystem{
          public abstract Client add(Client newGuy);
          public abstract Event add(Event e, Client guy);
          public abstract Event[] todayEvents();
        }

接口, 相当于纯抽象类(cpp纯虚类)
1 接口:全部的方法都是抽象方法,全部的属性都是常量。
   接口用来表示纯抽象概念,没有任何具体的方法和属性。
   public interface CRMSystem{
          Client add(Client newGuy);
          Event add(Event e, Client guy);
          Event[] todayEvents();
   }
2 不能实例化,可以定义变量。
3 接口变量可以引用具体实现类的实例。
4 接口只能被实现(继承),一个具体类实现接口,必须使用全部的
   抽象方法。
5 接口之间可以继承。
6 一个具体类可以实现多个接口,实现多继承现象,表示:
一个概念即是XXX也是XXX.
7 接口中的属性,默认是常量 public static final
8 接中的方法一定是:public abstract
9 实现一个接口,使用关键字implements, 实现实际上是
   一种继承关系。接口和实现类是父子类型的关系


页: [1]
查看完整版本: java开发中 抽象类和接口的区别