java中的抽象函数是什么? 和抽象类是什么关系? 抽象类是什么?又什么作用?

抽象函数 java

2013-07-24 22:51匿名  |  分类:JAVA相关  |  浏览269次
java中的抽象函数是什么? 和抽象类是什么关系? 抽象类是什么?又什么作用?
2013-07-26 21:03 网友采纳
热心网友
用abstract关键字来修饰一个类时,这个类叫做抽象类。
如:abstract class className{ }

抽象类的特点:
抽象类不能直接运用new创建对象
抽象类的实体中可以有abstract方法,且abstract方法只允许声明,而不允许实现
如:abstract returnType method();
抽象类中不一定要包含abstract方法,但一个类中包含了abstract方法,则这个类必须声明为abstract类。
抽象类的实现子类必须实现抽象类中所有的abstract方法
评论  |  1  0
按默认排序 | 按时间排序

其他2条回答

2013-07-26 21:09热心网友
1、抽象类

      当想要通过共通接口来操作一组classes时,便可撰写abstract class。子类中所有与“抽象类所声明的标记式”相符的函数,都会通过动态绑定的机制来调用。
      有一组类他们拥有一系列相似的行为特征,它们拥有一些共同的函数,我们就把这些共同特征抽取出来放到抽象类中,抽象类为所有的子类提供“共同的接口”。

      建立抽象类的唯一理由是:
      各子型别都可以以以不同方式来表现此一共同接口。达到多态性的目的。

      注意点:
      *  抽象函数只能在抽象类中出现(即,一个普通的类中,不能声明抽象函数,一旦声明,要将该class用abstract做饰词,否则编译出错)
      *  抽象类不能被实例化。否则编译出错。
      *  只有当子类实现了抽象类中定义的所有函数,该子类才可被实例化。否则,该子类便也是个抽象类。
      *  也可以将一般的类(不含任何抽象函数的类)声明为abstract。表明不允许该类产生任何实例。

2、接口

      完全抽象的class,不带半点实现内容。interface相当于是在类之间建立起的一个协议。
      interface使得我们可以撰写出“可被向上转型为多个基本型别”的class,达到C++多重继承的变形。

      注意点:
      *  默认interface是friendly,可通过加上关键字public成为public。
      *  interface中定义的函数默认是public的,因为它提供共同接口,需要可以被外界访问。为了增强程序可读性,可显式声明为public。
      *  当实现某个interface,用关键字implement。
         实现类中袭承自interface的函数必须都要定义为public。一定要显式写明是public,默认就变成friendly,减低了访问权限,这在Java编译器中是不允许的。

3、区别和联系

      异:
      *  抽象类用于支持多态性,接口用来支持“多继承”变形—— 一个class可向上转型为多个基本型别。
      *  抽象类中函数既可是抽象的,也可是包含实现细节的。接口只能表示形式,其中函数必定都是抽象的。
      *  抽象函数中可定义变量。接口只能定义 static/final 的成员变量。

      同:
      -  抽象类和接口都不能被实例化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java,接口(interface)和抽象类(abstract class)是用于实现抽象和多态性的机制。 接口是一种完全抽象的类,它只包含方法的声明而不包含方法的实现。接口的方法默认是公共(public)和抽象(abstract)的,不需要使用关键字进行标识。类可以实现一个或多个接口,并通过实现接口的方法来提供具体的实现。接口可以被看作是一种合同,要求实现类必须提供指定的方法。 抽象类是一种不能被实例化的类,它可以包含抽象方法和具体方法。抽象方法是没有实现的方法,需要在子类被覆盖实现。抽象类可以包含构造方法,字段和具体方法,但不能创建对象。子类必须继承抽象类并提供对抽象方法的具体实现。 区别: 1. 实现: - 接口:类可以实现多个接口,通过关键字`implements`来实现接口。 - 抽象类:子类只能继承一个抽象类,通过关键字`extends`来继承抽象类。 2. 方法: - 接口:只能包含抽象方法,默认为公共和抽象的。在Java 8之后,接口可以包含默认方法和静态方法的具体实现。 - 抽象类:可以包含抽象方法和具体方法,抽象方法需要在子类被覆盖实现。 3. 构造函数: - 接口:不能包含构造函数。 - 抽象类:可以包含构造函数。 4. 成员变量: - 接口:只能包含常量(被`final`修饰的变量),默认为公共、静态和最终的。 - 抽象类:可以包含各种类型的成员变量。 总结: 接口用于定义纯粹的抽象规范,强调"是什么";抽象类用于定义具有某些共性的类,并提供部分实现,强调"是什么以及如何"。接口更加灵活,可以实现多继承的效果,而抽象类更适合用于共享一些通用的实现代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值