精华内容
下载资源
问答
  • 抽象类和接口异同点

    2019-08-27 19:53:00
    抽象类是什么加粗样式: 抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象...(3) 抽象类可以但不是必须有抽象属性抽象方法,但是一旦有了抽象方法,就一定...

    抽象类是什么?

    抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。

    (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法

    (2) 抽象类不能被实例化

    (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类

    (4) 具体派生类必须覆盖基类的抽象方法

    (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们

    接口是什么:

    (1) 接口不能被实例化

    (2) 接口只能包含方法声明

    (3) 接口的成员包括方法、属性、索引器、事件

    (4) 接口中不能包含常量、字段(域)、构造函数、析构函数、静态成员

    接口和抽象类的不通点:

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

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

    (3)抽象类中可以包含静态方法,接口中不能包含静态方法

    (4) 一个类可以实现多个接口,但只能继承一个抽象类。

    (5)接口可以被多重实现,抽象类只能被单一继承

    (6)如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法

    接口和抽象类的相同点:

    (1) 都可以被继承

    (2) 都不能被实例化

    (3) 都可以包含方法声明

    (4) 派生类必须实现未实现的方法

    展开全文
  • 和抽象类 异同点: 相同之处: 包含成员变量、局部变量、类变量 包含各类具体实现的方法 具有构造方法、可继承...接口和抽象类 异同点: 相同之处: 都不能直接被实例化,接口需要被实现、抽象类需要被继承 存在

    类和抽象类 异同点:

    相同之处:

    • 包含成员变量、局部变量、类变量
    • 包含各类具体实现的方法
    • 具有构造方法、可继承和被继承、可实例化接口

    不同点:

    • 类:
      • 类可以被实例化
      • 类没有抽象方法
      • 子类可以任意重写父类方法
    • 抽象类:
      • 抽象类不能被实例化
      • 有抽象方法,抽象方法没有主体、只有方法名,不能为静态
      • 子类必须实现父类的抽象方法、否则子类也是抽象类
      • 具有抽象方法的类必定是抽象类、抽象类可以没有抽象方法

    在这里插入图片描述

    接口和抽象类 异同点:

    相同之处:

    • 都不能直接被实例化,接口需要被实现、抽象类需要被继承
    • 存在的意义在于声明一个行为,在目前阶段不能有具体实现(没有方法体),需要被下层实现

    不同点:

    • 接口:

      • 接口:是一系列行为的集合
      • 接口中定义变量需要用static final 进行修饰,且必须赋初值、不能被修改
      • 接口没有构造方法,所有方法默认public abstract 修饰
      • 接口可以==实现多继承==
      • 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法)
    • 抽象类:

      • 抽象类中的方法可以有方法体,就是能实现方法的具体功能
      • 抽象类中的成员变量可以是各种类型的
      • 抽象类是可以有静态代码块和静态方法
      • 抽象类只能单继承
        在这里插入图片描述
    展开全文
  • java抽象类和java接口在语法上的区别有以下几: 1、抽象类在java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是一个类却可以实现多个接口。继承抽象类使用的关键字为extends,实现接口使用的是...
    (一)java抽象类和接口在语法上的区别有以下几点:
    1、抽象类在java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是一个类却可以实现多个接口。继承抽象类使用的关键字为extends,实现接口使用的是implements关键字,继承写在前面,实现接口写在后面。
    2、再抽象类中可以有自己的数据成员,也可以由非abstract的成员方法,而在接口中只能有静态的不能被修改的数据成员,接口中所有的方法都是abstract的。
    3、实现接口的类必须实现其中的所有方法,接口中不能有实现方法。继承自抽象类的子类实现所有的抽象方法,抽象类中可以有非抽象方法。
    4、接口中默认的变量默认是public static final型,且必须赋予初值,所有实现类中不能重新定义,也不能改变其值。抽象类中的变量默认为friendly权限,其值可以在子类中重新定义,也可以重新赋值。
    5、接口中的方法默认是public abstract类型的
    (二)java抽象类和接口的相似之处:
    1、不能实例化
    2、都有为实现的方法声明
    3、派生类必须实现未实现的方法,抽象类是抽象方法,接口是所有成员。
    
    展开全文
  • Java抽象类接口异同点

    千次阅读 2019-08-31 17:25:52
    抽象类接口相同: 都可以定义抽象方法 都不可以被实例化 子类必须对所有的抽象方法提供具体实现,否则子类必须声明为抽象类 抽象类接口相同接口中的方法必须是抽象的方法,抽象类可以存在非抽象方法 ...

    抽象类与接口相同点:

    1. 都可以定义抽象方法
    2. 都不可以被实例化
    3. 子类必须对所有的抽象方法提供具体实现,否则子类必须声明为抽象类

    抽象类与接口相同点:

    1. 接口中的方法必须是抽象的方法,抽象类可以存在非抽象方法
    2. 子类可以extends抽象类,子类可以implements接口
    3. 类只能extends一个抽象类,但是可以implements多个接口

    一、抽象类(关键字abstract)

    定义:描述不具体的

    出现抽象类的原因:

    在不断抽取过程中,将共性内容中的方法声明抽取,但是方法内容不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所标示,声明为抽象方法。
    抽象方法所在类一定要标示为抽象类,也就是说该类需要被abstract关键字所修饰。

    抽象类的特点

    1. 定义在抽象类里面方法必须是抽象的方法,抽象类和抽象方法必须要有abstract关键字修饰,(abstract不能修饰变量)
      在这里插入图片描述
    2. 抽象方法只能定义方法声明,不能定义方法实现,即是不能有函数体,如有函数体将会报错,如下;
      在这里插入图片描述
      报出了Abstract methods do not specify a body (抽象类方法不能有函数体的错误)
    3. 子类继承抽象类,该子类必须覆盖了所有的抽象方法后,该子类才可以实例化。否则,该子类还是抽象类。

    抽象类的细节

    1. 抽象类中是否有构造函数?
      有,用于给子类对象进行初始化。
    2. 抽象类中是否可以定义非抽象方法?
      可以。其实,抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体。所以抽象类和一般类在定义上,都是需要定义属性和行为的。只不过,比一般类多了一个抽象函数。而且比一般类少了一个创建对象的部分。
    3. 抽象关键字 abstract 和哪些关键字不可以共存?
      private 。抽象方法需要被子类方法覆盖才可以使用,private修饰的方法不可以被子类继承。
      static 。static和abstract同时修饰一个方法时,被static修饰的方法,可以直接被类名调用,此方法没有内容,调用此方法没有意义。
      final 。当final和abstract同时修饰一个方法时,abstract修饰的方法必须被子类覆盖才能使用,而被final修饰的方法不能被覆盖。
    4. 抽象类中可不可以不定义抽象方法?
      可以。不定义抽象方法目的是不让抽象类创建对象。
    5. 抽象类一定是父类吗?
      是的,因为需要被其子类覆盖其所有的抽象方法才能使用。

    二、接口(关键字interface)

    出现接口原因:

    Java继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。

    接口的概念

    1. 接口中只包含常量和抽象方法,而没有变量和方法的实现
    2. 接口对类来说是一套规范,是一套行为协议;
    3. 接口不是一个类,不能实例化

    语法格式

    <访问权限修饰符> interface 接口名 {
    接口成员;
    }

    public interface Camera {
    	
    	public abstract void TakePhoto();
    	public abstract void Takemove() ;
    }
    
    

    接口和接口的继承

    接口和接口的继承可以实现多继承:

    public interface Camera extends Game,Consumer{
    	
    	public abstract void TakePhoto();
    	public abstract void Takemove() ;
    }
    
    

    类和接口的继承

    类实现接口 — implements

    1. 为了使用一个接口,必须要在类中实现(implement)它
    2. 如果一个类要实现一个接口,那么这个类就必须实现接口中所有抽象方法。
      否则这个类只能声明为抽象类
    3. 多个无关的类可以实现一个接口,一个类可以实现多个无关的接口
    4. 一个类可以在继承一个父类的同时,实现一个或多个接口
      在这里插入图片描述

    JDK8接口默认方法

    在JDK8之前,接口不能定义任何实现,这意味着之前所有的JAVA版本中,接口制定的方法必须是抽象的,不能包含静态方法。
    从JKD8开始,添加了一种新功能-默认方法。默认方法允许接口方法定义默认实现,而所有子类都将拥有该方法及实现。

    public interface Camera extends Game,Consumer{
    	public static void hhh() {
    		//JDK1.8及其之后版本可以有静态常量和静态方法
    	}
    	public abstract void TakePhoto();
    	public abstract void Takemove() ;
    }
    
    

    默认方法的优势:
    提供一种拓展接口的方法,而不破坏现有代码。

    1. 在JDK8以前,如果为一个使用的接口增加一个新方法,必须在所有实现类中添加该方法的实现。
    2. JDK8以后的默认方法则解决了这个问题,它提供了一个实现,当没有显示提供其他实现时就采用这个实现。这样新添加的方法将不会破坏现有代码。
    展开全文
  • 一、两者相同1、不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。2、抽象类里的抽象方法必须全部被子类所实现,子类不能全部实现父类...
  • 二、接口和抽象类异同 相同: 1)都不能被实例化。 2)接口的实现类或抽象类的子类都只有实现了接口抽象类中方法后才能实例化。 不同: 1)在成员变量上,抽象类可以有变量、常量、构造方法、有抽象方法也...
  • 抽象类和接口有什么异同

    千次阅读 2018-12-23 14:48:42
    2.接口的实现类或者抽象的子类都必须实现类接口或者继承了抽象才可以被实例化 不同: 1.接口只有定义,方法不能再接口中实现,实现接口的类要实现接口中的所有方法;抽象类可以有定义与实现方法可以在抽象类中实现...
  • 抽象类接口之间的相同 1.都不可以直接创建对象 2.可以使用多态 3.都可以定义静态方法 4.都可以定义一般方法 但是接口中的一般方法需要添加default关键字 接口抽象类之间的不同 1.接口中的属性 为...
  • 抽象类和接口异同点 不同点 抽象类保留一般类的特性,有普通成员方法,成员变量以及抽象方法等;而接口中只有常量以及方法声明。 抽象类中可以有构造方法;而接口中不能有构造方法。 抽象类不是具体的类,无法...
  • 简述java抽象类接口异同点

    千次阅读 2019-12-13 10:45:01
    一、抽象类: (关键字abstract) ...抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法构造方法的访问方式普通类一样。 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也...
  • 抽象类接口异同点

    千次阅读 2019-04-23 09:46:55
    先上代码,后面对照代码分析 ... //此处省略了 final 修饰符信息 完整的为public final int i=0; //它是一个静态共有的常量 int i=0; //此处省略了abstract修饰符 完整的为abstract void onItem(); /...
  • 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制(注意:该句中前后两个抽象类的意义不一样,前者表示的是一个实体,后者表示的是一个概念)。 二者具有很大的相似性,甚至有时候是可以互换...
  • Java接口和抽象类异同点

    千次阅读 2018-11-21 23:40:06
    1.抽象类和接口都不能直接实例化(创建对象); 2.抽象类的子类(或接口的实现类),都必须实现抽象类(或接口)中全部的抽象方法,才可以被实例化;否则,该类仍然为抽象类; 不同: 1.关键字不同:抽象类子类...
  • 1、接口和抽象类都不能直接实例化; 2、 二、不同 1、接口中不能有构造函数,抽象类中可以有构造函数; 2、接口中只能有常量属性,抽象类中可以有一般属性; 3、接口中所有的方法都是public的,而抽象类中的方法可以...
  • 抽象类接口有什么异同? 什么是抽象类呢? 如果一个类中包含了抽象方法,那么这个类就是抽象类。可通过类或者方法中是否有abstract来判断,(abstain只能修饰类或者方法,不能修饰属性)。 那什么是接口呢? 接口...
  • 今天是在这个公司的最后一天,外面下着雨,跟我心情一样!虽然不是什么大公司,但是跟同事的感情还是不错的。革命尚未成功,同志仍需...看到抽象类和接口的知识时,突然想起自己当年在面试过程中遇到过。细细想...
  • 抽象类和接口异同点 接口和抽象类的区别: (1)抽象类可以有构造方法,接口中不能有构造方法。 (2)抽象类中可以有普通成员变量,接口中没有普通成员变量 (3)抽象类中可以包含静态方法,接口中不能包含静态...
  • 相同: 关键字不同,abstract class,interface 子类或实现类必须重写全部父类的抽象方法,否则该类要被声明为抽象类。 不同
  • 什么是抽象类抽象类
  • 抽象类和接口的区别以及抽象类和接口的使用场景

    千次阅读 多人点赞 2019-05-30 18:15:44
    一、抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就可以称之为抽象类。 1.抽象方法...
  • 在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。 1.抽象类 1.1 抽象方法 概念:只有声明,没有具体的实现的方法。 声明格式为:abstract void fun(); 1.2 抽象类 概念:如果一个类含有抽象方法,...
  • 抽象类接口的相同点和不同点

    千次阅读 2018-04-16 19:42:32
    抽象类和接口都不能实例化对象,但是可以定义抽象类和接口类型的引用;2.继承抽象类和实现接口都要对其中的抽象方法全部实现;不同:1.接口抽象类更加抽象,抽象类中可以定义构造方法(构造器),可以有抽象方法具体...
  • **抽象类** public abstract class person{ public void eat(){ System.out.println("我是抽象方法吃东西"); } public void run(){} void walk(){} protected void sleep(){} private void read(){...
  • JAVA接口与实现 接口-关键字: interface 实现-关键字: implements 什么时候用接口? 例子: abstract class AbsDemo { abstract void show1()...当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类,用另一种形...
  • 请说明抽象类和接口异同

    千次阅读 2018-06-29 11:34:03
    相同:1、都可以被继承,2、都不能被实例化,3、都包含抽象方法,4、都可以实现程序的多态性 不同:1、接口不能定义静态方法,抽象类可以,2、接口中的数据成员只能是常量,抽象类可以定义非抽象方法,而接口中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,748
精华内容 5,899
关键字:

抽象类和接口的异同点