A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小子考驾照 中级黑马   /  2014-8-24 23:54  /  1528 人查看  /  14 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类(abstract class)的定义方式如下:
public abstract class AbstractClass             //里面至少有一个抽象方法
{
  public int t;  //普通数据成员
   public abstract void method1();   //抽象方法,抽象类的子类在类中必须实现抽象类中的抽象方法
  public abstract void method2();
  public void method3();   //非抽象方法
  public int method4();
  publi int method4 (){
        …… //抽象类中可以赋予非抽象方法方法的默认行为,即方法的具体实现
  }

       public void method3(){
        …… //抽象类中可以赋予非抽象方法方法的默认行为,即方法的具体实现
  }

}



接口(interface)的定义方式如下:
public interface Interface
{
  static final int i;  //接口中不能有普通数据成员,只能够有静态的不能被修改的数据成员,static表示全局,final表示不可修改,可以不用static final 修饰,会隐式的声明为static和final
  

   public void method1();  //接口中的方法一定是抽象方法,所以不用abstract修饰
  

  public void method2();  //接口中不能赋予方法的默认行为,即不能有方法的具体实现
}

  

  简言之抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。
  从某种意义上说,接口是一种特殊形式的抽象类,在java语言中抽象类表示的是一种继承关系,一个类只能继承继承一个抽象类,而一个类却可以实现多个接口。在许多情况下,接口确实可以代替抽象类,如果你不需要刻意表达属性上的继承的话。

14 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
学习了 前些天刚看到抽象这
回复 使用道具 举报
很不错的总结
回复 使用道具 举报
学习了!
回复 使用道具 举报
  学习了!
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
看看,学习下
回复 使用道具 举报
学习了,谢谢
回复 使用道具 举报
总结的不错!
回复 使用道具 举报
嗯嗯。很好
回复 使用道具 举报
学习学习
回复 使用道具 举报
  总结的不错
回复 使用道具 举报
学习一下!
回复 使用道具 举报
抽象方法一定在抽象类中!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马