JAVA中接口与抽象类

抽象类总结

抽象类的概念:是使用关键字abstract修饰的类就是抽象类;

抽象类的产生:当多个不能相互继承的类具有相同的功能时,就需要将共同的信息向上抽取,放到公共的父类中;如果公共的父类只能描述所有子类都具有的功能,但描述不清功能的具体实现,就需要将该函数定义为抽象的,使用关键字abstract修饰;如果一个类中出现了抽象的函数,说明这个类也是不具体的,应该定义为抽象类,使用abstract修饰;

抽象类的特点

抽象类不能实例化;

抽象类中的抽象函数必须由子类去实现,否则子类也是抽象类;

抽象类也是一个类,类中可以书写所有成员,也可以没有抽象函数;

因为抽象函数必须由子类实现,所以不参与继承的(private)和不能被子类重写的(final)关键字不能和abstract共存;

因为静态函数不需要类的对象就可以直接使用,所以static关键字也不能和abstract共存;

如果一个类不希望被实例化,但又希望被子类继承,就可以定义为抽象的,即使类中没有抽象函数;

接口的作用总结

接口的声明格式

interface Inter{}

接口中能书写的成员

成员变量:全部都使用public static final 修饰;所以接口中的成员变量都是常量;

成员函数:全部都使用 public abstract 修饰;

接口中没有构造函数;

接口的细节

接口不能实例化,只能被类实现;

实现接口的类必须实现接口的所有方法,否则实现类必须是抽象的;

接口与接口是继承的关系,一个接口可以继承多个接口;类和接口是实现的关系,一个类可以实现多个接口;

通常开发中使用接口类型的引用指向实现类的对象,这是多态的体现;

接口的作用

描述非继承体系中的共性内容;

通过多态使用接口,可以提高程序的扩展性;

实现的java的多继承;

接口可以定义规则;

接口和抽象类的区别

1、从声明上:

  1. 抽象类是一个类,需要使用关键字:class声明
  2. 接口不是一个类,使用关键字:interface声明

2、从能够书写的成员上看:

  1. 抽象类可以书写类中的所有成员
  2. 接口中只能书写成员变量和抽象函数;(从JDK8开始,接口中可以有实现的函数)

3、从有无构造函数上看:

  1. 抽象类有构造函数,是给子类实例化对象使用的
  2. 接口没有构造函数

4、从作用上看:

  1. 抽象类是描述的继承体系中的共同的特征和行为,如果行为不确定,就定义为抽象函数;
  2. 接口描述的是不属于继承体系的共同的功能;接口可以用来定义规则;

5、继承关系上:

  1. 抽象类是一个类,只支持单一继承和多重继承;
  2. 接口和接口可以多继承和多重继承;接口和实现类可以多实现;

适配器小结

适配器的作用,就是适配、转换,将不符合使用要求的东西转换为符合使用要求的;

适配器设计模式,解决的是怎么将不符合使用要求的类、对象或接口转换为符合使用要求的;

根据适配的对象不同,可以将适配器分为类的适配、对象的适配和接口的适配;

接口的适配的步骤:

1、创建一个适配器类实现接口,在这个类中使用空实现实现接口中的所有抽象函数;

2、因为适配器类中的函数都是空实现的,创建该类的对象没有意义,所以要将适配器类定义为抽象类;

3、要使用适配器类,只需书写类继承适配器类即可;

原文地址:https://www.cnblogs.com/sueyyyy/p/9296906.html

时间: 2024-10-17 14:49:09

JAVA中接口与抽象类的相关文章

Java中接口和抽象类的比较

Java中接口和抽象类的比较-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]].(在面向对象语言中,接口的多种不同的实现方式即为多态.多态性是允许你将父对象设置成为和一个或更多的他的子对象的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕").简单的说,就是一句话:允许将子类类型的

Java中接口和抽象类的比較

Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计使用多态性的基础[[1]]. (在面向对象语言中,接口的多种不同的实现方式即为多态. 多态性是同意你将父对象设置成为和一个或很多其它的他的子对象的技术.赋值之后.父对象就能够依据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4编程技术内幕"). 简单的说.就是一句话:同意将

Java中接口和抽象类的区别与联系

Java中接口和抽象类的区别与联系 1. 抽象类: (1).概念:抽象类是对一种事物的抽象,即对类抽..抽象类是对整个类整体进行抽象,包括属性.行为.Java抽象类和Java接口一样,都用来声明一个新的类型.并且作为一个类型的等级结构的起点. (2).格式: public abstract class abstractDemo{ /**属性*/ private String name; /**方法*/ public abstract void fun(); } (3).说明: A:抽象类中不一定

java中接口与抽象类的区别

接口和抽象类的共同特征如下: 接口和抽象类都不能被实例化,位于继承树的顶端,用于被其他类实现和继承. 接口和抽象类都可以包含抽象的方法,实现接口的类或者继承抽象类的类都必须实现这些抽象的方法. 区别:二者的主要区别在于他们存在的目的不同,即设计的目的不同. 接口作为系统与外界交互的窗口,接口体现的是一种规范. 抽象类作为系统中多个子类的共同父类,抽象类体现的是一种模板式设计. 我们最关注的还是二者用法的区别: (1)接口里只能包含抽象方法和默认方法,不能实现普通方法.抽象类完全可以包含普通方法.

java中接口和抽象类的区别

抽象类: 1.用abstract表示 2.里面有一个或多个抽象方法,在方法前加abstract,抽象类中也可以没有抽象方法 3.抽象类用extends继承,并且必须重写抽象方法 接口 1.用implement表示 2.接口是极度抽象的类,所有方法都是抽象的,都需要进行重写 接口的作用:解决java中的单继承问题,一个类可以实现多个接口,但只能有一个父类 共同点:都不能被实例化

浅谈java中接口与抽象类之间的异同

刚学习java的时候,总觉得接口和抽象类很像,但又说不上具体有什么区别.今天静下来,翻翻书,查查资料,做个小结.首先举两个例子,看看interface和abstract class 在"外形"上有啥异同. 1.先看一下抽象类: abstract class Person{ private String name; private Person(String n) { name=n; } public abstract String getDescription(); public St

Java中接口和抽象类的区别?

抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承.抽象类不能创建对象 抽象类和普通类的区别 抽象类必须用public.procted 修饰(如果为private修饰,那么子类则无法继承,也就无法实现其抽象方法).默认缺省为 public 抽象类无法创建对象 如果一个子类继承抽象类

java中接口和抽象类有什么区别,举例!

接口和抽象类有什么区别?(视频下载) (全部书籍)答:马克-to-win:抽象类里可以有实现的方法,接口里不能有,所以相对来讲各方面实现都简单(尤其动态方法调度).另外:类可以实现多个接口.反过来说,也正是抽象类一个致命伤:类只能继承一个超类(抽象类或其他类)..................详情请进:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/Java

java中接口和抽象类的异同点

抽象类和接口的区别:A:成员区别 抽象类: 成员变量:可以变量,也可以常量 构造方法:有 成员方法:可以抽象,也可以非抽象 接口: 成员变量:只可以常量,默认修饰符:public static final 成员方法:只可以抽象,默认修饰符:public abstract 建议:自己手动给出. 所以可以说接口是一种特殊的抽象类 B:关系区别 类与类 继承,单继承 类与接口 实现,单实现,多实现 接口与接口 继承,单继承,多继承 C:设计理念区别 抽象类 被继承体现的是:"is a"的关系