精华内容
下载资源
问答
  • 抽象方法和接口区别

    千次阅读 2019-09-11 11:19:08
    接口和抽象方法区别: 1、抽象类可以有构造方法接口中不能有构造方法。 2、抽象类中可以有普通成员变量,接口中没有普通成员变量 3、抽象类中可以包含非抽象的普通方法接口中的所有方法必须都是抽象的,不能有...

    接口和抽象方法的区别:

    1、抽象类可以有构造方法,接口中不能有构造方法。

    2、抽象类中可以有普通成员变量,接口中没有普通成员变量

    3、抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

    4、抽象类中的抽象方法的访问类型可以是 public,protected和(默认类型,虽然eclipse 下不报错,但应该也不行),但接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。

    5、抽象类中可以包含静态方法,接口中不能包含静态方法(JAVA8的新特性:接口可以有静态方法和默认方法)

    6、抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是 public static final 类型,并且默认即为 public static final 类型。

    7、一个类可以实现多个接口,但只能继承一个抽象类。

    展开全文
  • 抽象类,抽象方法和接口是java基础里面比较重要但是容易混淆的知识点,在实际运用的时候因为具有很多共同点所以也会有时候也会不知道用什么或者用错,正好借这个机会整理一下这方面的知识~~_~ 抽象和抽象...

    抽象类,抽象方法和接口是java基础里面比较重要但是容易混淆的知识点,在实际运用的时候因为具有很多共同点所以也会有时候也会不知道用什么或者用错,正好借这个机会整理一下这方面的知识~~_
    (欢迎互关,一起学习进步!)


    抽象类和抽象方法

    • 关键字abstract修饰的类是抽象类,修饰的方法就是抽象方法(这解释完美了)
    • 抽象类代码如abstract class 类名{//...}
    • 抽象方法代码如[访问限定词] abstract 数据类型 方法名 ([参数列表]);
    • 抽象类不能生成对象实例,也就是不能new对象
    • 抽象方法只有方法的头部没有方法体,抽象方法一定不能用final修饰

    抽象类和抽象方法的联系

    • 抽象类中如果有抽象方法就必须定义成抽象类
    • 抽象类的子类如果不能实现父类的抽象方法,那就也得定义成抽象类
    • 具体子类(派生类)必须覆盖父类(基类)的抽象方法
    • 派生类可以覆盖抽象方法,也可以不覆盖,如果不覆盖那其具体派生类必须覆盖他们

    接口

    • Java接口是由若干常量和方法声明组成的集合
    • 接口中的方法只有声明没有实现
    • 这些方法可以在不同的地方被不同的类实现,而这些实现可以有不同的行为(功能)
    • 定义接口的目的在于规范对象的行为,告诉实现接口的实现者要做什么,而不要求怎么做,由实现者根据自身情况决定怎么做
    • 接口中定义的常量是接口的特征属性,用于规范接口要求
    • 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员
    • 代码如
    [修饰符] interface 接口名称 [extends父接口名列表]
    {
        [public] [static] [final] 数据类型 变量名 = 常量值;
        [public] [abstract] 返回值类型 方法名(参数列表)
    }
    

    接口和抽象类的区别:

    1. 抽象类中既可以包含抽象方法,也可以包含非抽象的普通方法;而接口中的方法必须是抽象方法
    2. 抽象类中的抽象方法的访问类型可以是public、protected、default,但接口中的抽象方法只能是public类型的
    3. 抽象类中可以有普通成员变量,而接口中的所有变量均为public static final修饰,即均为常量
    4. 抽象类里可以有构造方法,而接口中不能有构造方法
    5. 抽象类里可以有静态方法,而接口中不能有静态方法
      6, 一个类可以实现多个接口,但只能继承一个抽象类
    6. 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法

    接口和抽象类的相同点

    1. 都可以被继承
    2. 都可以包含方法声明
    3. 都不可以实例化
    4. 派生类必须实现未实现的方法
    展开全文
  • C#类、接口、虚方法和抽象方法-接口抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口抽象类的区别实例
  • 抽象和接口区别

    万次阅读 多人点赞 2019-05-07 23:29:58
    抽象和接口的定义: 抽象类(abstract class): 使用abstract修饰符修饰的类。(如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。) 实际点来说,一个抽象类不能实例化,因为“没有...

    抽象类和接口的定义:

    抽象类(abstract class):

    使用abstract修饰符修饰的类。(如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。

    实际点来说,一个抽象类不能实例化,因为“没有包含足够多的信息来描述一个具体的对象”。但仍然拥有普通类一样的定义。依然可以在类的实体(直白点就是能在{}里面)定义成员变量,成员方法,构造方法等。

    抽象方法:只声明,不实现。具体的实现由继承它的子类来实现。实际点就是:被abstract修饰的方法,只有方法名没有方法实现,具体的实现要由子类实现。方法名后面直接跟一个分号,而不是花括号。例如:public abstract int A();

    一个类中含有抽象方法(被abstract修饰),那么这个类必须被声明为抽象类(被abstract修饰)。

     

    接口(interface):

    定义:接口在java中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而继承接口的抽象方法。从定义上看,接口是个集合,并不是类。类描述了属性和方法,而接口只包含方法(未实现的方法)。

    接口和抽象类一样不能被实例化,因为不是类。但是接口可以被实现(使用 implements 关键字)。实现某个接口的类必须在类中实现该接口的全部方法。虽然接口内的方法都是抽象的(和抽象方法很像,没有实现)但是不需要abstract关键字。

    1. 接口中没有构造方式(因为接口不是类)
    2. 接口中的方法必须是抽象的(不能实现)
    3. 接口中除了static、final变量,不能有其他变量
    4. 接口支持多继承(一个类可以实现多个接口)

     

    抽象类和接口的区别:

     

    1.默认的实现方法:

    (1)抽象类可以有默认的方法实现完全是抽象的。

    抽象类中可以有已经实现了的方法,也可以有被abstract修饰的方法(抽象方法),因为存在抽象方法,所以该类必须是抽象类。

    (2)接口根本不存在方法的实现。

    但是接口要求只能包含抽象方法,抽象方法是指没有实现的方法。接口就根本不能存在方法的实现。

     

    2.子类使用的关键词不一样:

    (1)实现抽象类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。

    抽象类虽然不能实例化来使用,但是可以被继承,让子类来具体实现父类的所有抽象方法。但是如果子类将抽象方法没有全部实现,就必须把自己也修饰成抽象类,交于继承它的子类来完成实现。以此类推,直到没有抽象函数。

    (2)子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现。

    接口的实现,通过implements关键字。实现该接口的类,必须把接口中的所有方法给实现。不能再推给下一代。(和抽象类相比,抽象类是将梦想传给家族,一代一代去完成。那么接口就是掌门人找大师兄来完成帮派的鸿星伟业,这时候就只有一次希望,要么有能力就实现,没能力就不要接。

     

    3.是否有构造器:

    (1)抽象类可以有构造器

    抽象类是属于类,享有类的所有特性(但是不能实例化),当然包括类的构造方法,也就是构造器。

    (2)接口不能有构造器

    接口是所有抽象方法的集合,注意,是集合,不是类。当然没有构造方法一说,更别提什么构造器了。

     

    4.可使用的修饰符:

    (1)抽象方法可以有public、protected和default这些修饰符 

    抽象类的目的就是被继承,抽象方法就是为了被重写,所以肯定不能用private修饰符,肯定是可以用public的。但是protected和default也是可以的。

     

    (2)接口方法默认修饰符是public。你不可以使用其它修饰符。

    接口就有且只有一个public修饰。(感觉抽象类像小儿子各种耍无赖,接口就像私生子,说什么只能是什么)

     

    5.速度方面:

    (1)抽象方法比接口速度要快抽象方法是小儿子,从小吃的好所以跑的快

    (2)接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。接口是私生子,从小日子苦,营养不良

     

    6.增加新方法对子类的影响:

    (1)如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。

    抽象类可以有一些非抽象方法的存在,这些方法被称为默认实现。如果添加一个默认实现方法(不能是抽象方法),就不需要在子类中去实现,所以继承这个抽象类的子类无须改动。

    如果你往接口中添加方法,那么你必须改变实现该接口的类。

    (2)接口中只能添加抽象方法,当你添加了抽象方法,实现该接口的类就必须实现这个新添加的方法。

    因为,定义中说的很清楚,接口的实现必须实现所有的方法。所有,当然包括新添加的方法。

     

    7.子类能继承的数量:

    抽象类在java语言中所表示的是一种继承关系,一个子类只能存在一个父类,但是可以存在多个接口。

    java在类的继承上并没有多继承。抽象类属于类,所以可以被继承。但子类只能继承一个父类。

    java为了实现多继承,使用了接口。一个类可以实现多个接口。继承就好比生了孩子,只能有一个爹,但是这个孩子可以学语文,学数学,学英语等等很多东西,而语文、数学、英语就相当于接口。

     

    总的来说,因为java中抽象类只有单继承,接口就可以实现多继承。

    展开全文
  • 抽象和接口区别

    千次阅读 2019-09-06 10:18:44
    抽象和接口区别 区别1: 子类只能继承一个抽象类,不能继承多个 子类可以实现多个接口 区别2: 抽象类可以定义 public,protected,package,private 静态非静态属性 final非final属性 但是接口中声明的属性,...

    抽象类和接口的区别

    区别1:
    子类只能继承一个抽象类,不能继承多个
    子类可以实现多个接口
    区别2:
    抽象类可以定义
    public,protected,package,private
    静态和非静态属性
    final和非final属性
    但是接口中声明的属性,只能是
    public
    静态
    final的
    即便没有显式的声明

    注: 抽象类和接口都可以有实体方法。 接口中的实体方法,叫做默认方法

    package charactor;
     
    public interface AP {
     
    	public static final int resistPhysic = 100;
    	
    	//resistMagic即便没有显式的声明为 public static final
    	//但依然默认为public static final
    	int resistMagic = 0; 
    	
        public void magicAttack();
    }
    
    
    展开全文
  • (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 (4) 具体派生类必须覆盖基类的抽象方法 (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,...
  • Java 抽象类,抽象方法和接口

    千次阅读 2015-03-26 20:50:40
    讲述Java中抽象类,抽象方法和接口的各种用法。
  • 抽象和接口区别及使用场景

    千次阅读 多人点赞 2018-07-09 10:22:53
    抽象和接口区别及使用场景 1.1 抽象类 1.2 接口 1.3 抽象和接口区别 1.3.1 语法层面上的区别 1.3.2 设计层面上的区别 1.4 什么时候使用抽象和接口 抽象和接口区别及使用场景 1.1 抽象类 在...
  • 抽象和接口区别以及抽象和接口的使用场景

    千次阅读 多人点赞 2019-05-30 18:15:44
    一、抽象类 ...1.抽象方法:使用abstract修饰且没有方法体的方法。 特点: ① 抽象方法没有方法体,交给子类实现 ② 抽象方法修饰符不能是private final static ③ 抽象方法必须定义在抽象...
  • 抽象和接口,抽象和接口区别

    千次阅读 多人点赞 2016-11-21 17:28:05
    其实愿意去真正了解抽象和接口是因为看源代码后的动力。因为接口用的太多了,对于java开发来说,现在只是一个小学 生。 看了很多大牛的文章还有自己老师的总结,然后自己总结了一些。有不对的请指出,因为是个...
  • 抽象和接口区别

    千次阅读 2019-05-11 11:28:06
    在面向对象领域,抽象类主要用来进行类型隐藏。...接口类似于类,但接口的成员没有执行体,它只是方法、属性、事件索引符的组合而已。接口不能被实例化,接口没有构造方法,没有字段。在应用程序中,接...
  • Java8新特性--接口的默认方法与静态方法Java8用默认方法与静态方法这两个新概念来扩展接口的声明在这之前先来复习下接口,就拿它和抽象类的区别来说吧:1、设计层面上:抽象类是对事物的抽象,包括事物的属性方法...
  • Java中抽象和接口区别

    万次阅读 多人点赞 2019-02-07 14:10:07
    在Java中,可以通过两种形式来体现OOP的抽象接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口...
  • Java编程基础之抽象和接口区别

    千次阅读 2019-03-25 19:28:22
    1、什么是抽象类?在java面向对象的概念中,抽象类是没有过多信息描述具体的对象的一类。看下面的代码,分析抽象类有哪些特点: public abstract class ... * 抽象类里可以是抽象方法,非抽象方法 * */ ...
  • php抽象和接口区别

    万次阅读 2018-04-04 12:49:04
    php抽象和接口区别 tags:抽象接口 抽象和接口 php 引言:这是一个面试经常被问到的问题,也是一个经典问题。我们尽量引用官方权威的说明或者经过实验来证明本文所说的内容准确性。 抽象类 ...
  • java(7): 抽象和接口区别

    千次阅读 2019-01-04 15:43:05
    先笼统的说一下抽象和接口区别以及我们在实际使用中怎么去选择使用接口还是抽象类? 首先我们要明白,抽象类是对类的抽象,而接口是对行为的抽象。了解了这个概念后一切都好办。抽象类是对整个类整体进行抽象,...
  • java抽象和接口最本质的区别接口里不能实现方法--接口中的方法全是抽象方法抽象类中可实现方法--抽象类中的方法可以不是抽象方法,下文给大家简单介绍下,需要的的朋友参考下
  • 1.抽象类:含有抽象方法的类被称为抽象类里面可以有抽象方法和具体的方法体 2.抽象方法:指在类中没有方法体的方法不能被声明为private,且abstract不能与final并列修饰同一个类,否则子类无 法继承** 示例...
  • 抽象和接口区别及应用场景

    千次阅读 2018-03-25 23:22:36
    区别如下: 1.抽象类是对类的抽象(包括了属性对应的行为). 接口是对某一个行为动作的抽象。 2.抽象类只能单继承,接口可以实现多继承。 3.接口中定义的方法不能实现,即使不...可以有抽象方法和抽象方法。 ...
  • 接口和抽象类有什么区别

    千次阅读 2019-04-19 14:06:15
    接口和抽象类有什么区别抽象类可以有构造方法接口中不能有构造方法抽象类中可以有普通成员变量;接口中没有普通成员变量。 抽象类中可以包含非抽象普通方法接口中的所有方法必须都是抽象的。 抽象类...
  • 一、抽象类、抽象方法 抽象方法:类的成员方法,只有声明,没有实现,把实现交给子类。 抽象类:含有抽象方法的类。 1.有抽象方法的类一定是抽象类,但抽象类里可以没有抽象方法(当然也可以抽象方法+...
  • 继承抽象和接口区别

    千次阅读 2018-07-17 17:32:18
     抽象和接口都是在一定程度上体现到了java的多态特性。那么在使用场景上,它们有什么区别呢? 在语法方面:   抽象类:  1.由abstract关键词修饰的类称之为抽象类。   2.抽象类中没有实现的方法称之为...
  • 抽象和接口有什么区别

    千次阅读 2020-08-10 16:14:50
    抽象和接口有什么区别 最本质的区别,抽象类是一个类,而接口是另一种类型 接口用来对功能进行抽象,而抽象类用来对类型结构进行抽象 抽象类中可以有正常方法(对方法进行实现)也可以有抽象方法(只做声明),而在接口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 891,837
精华内容 356,734
关键字:

抽象方法和接口的区别