关于接口 和抽象类_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 关于接口 和抽象类

关于接口 和抽象类

 2013/11/8 3:15:34  ie4119  程序员俱乐部  我要评论(0)
  • 摘要:【来自CSDN@inthistime的发言】Interface:接口AbstractClass:抽象类Class:类,包括抽象类。学Java的人,或学OO编程的人,都是要弄清楚这两个概念的区别。现将我的观点说一下。在OO中,Interface和AbstractClass是两个不同的概念。1。AbstractClass类似于AbstractDataType(抽象数据类型),它定义了它所有的subclass(子类)应该有的特性,就是在AbstractClass中声明方法和变量。如定义一种抽象类型
  • 标签:接口 抽象
【来自CSDN @inthistime的发言】
Interface:接口
Abstract Class:抽象类
Class:类,包括抽象类。
学 Java 的人,或学 OO 编程的人,都是要弄清楚这两个概念的区别。
现将我的观点说一下。
在OO中,Interface 和Abstract Class 是两个不同的概念。
1。Abstract Class类似于 Abstract Data Type(抽象数据类型),它定义了它所有的subclass(子类)应该有的特性,就是在Abstract Class 中声明方法和变量。如定义一种抽象类型:车。那么在Java中,就要在class或method上加上 abstract。举个例:
public abstract class 车
{
  public int 轮子;
  public abstract void 移动();
}
这个抽象类就声明了所有的车应有的特征(如轮子)和行为(如移动)。之后你就可以扩展(extend)这个抽象类,只要是车,就可以,还有你可以在子类(subclass)中加入自己的特征,如
public class 跑车 extends 车
{
  public void 移动()
  {
    System.out.println("我在移动");
  }  
  public void 引擎类型()  //属于自己(跑车)的行为
  {
    System.out.println("高级引擎");
  }
  轮子=4;
}
public class 自行车 extends 车
{
  public void 移动()
  {
    System.out.println("我在移动");
  }  
  public void 爆胎()  //属于自己(自行车)的行为
  {
    System.out.println("我走不动了");
  }
  轮子=2;
}
2。Interface 则用来定义一个协议,所有的方法都可以实现它。一个Interface定义了方法,和最终静态(final static)变量,所有实现这个Interface的都要保证实现的东西与这个Interface 定义的行为一致。使用Interface可以让Object(对象)在一定的规范下沟通。

public interface TCP协议
{
public void 打开端口();
public void 关闭端口();
}
这样的话,只要实现这个Interface的都可以使用这两个方法交流。
Java平台里,它们主要有3个不同点:
1。一个类(Class)只能继承一个超类(Super class),但是可以实现多个Interface。
2。在Abstract Class内,你可以有不抽象(Abstract)的方法,即有意义的方法,但Interface不行。

public abstract class 车
{
  public int 轮子;
  public abstract void 移动();
  public String 我是什么()
  {
    return "车子";
  }
}
3。Interface不属于 继承范围。即不可能成为超类(Super Class)




上一篇: 自定义继承于Page的基类 下一篇: 没有下一篇了!
发表评论
用户名: 匿名