写在前面,下面是在百度百科上看到的,之前就看过,这次再看感觉有更深的体会,真的是这样,每一个脚印都会留下痕迹 java接口和java抽象类有太多相似的地方,又有太多特别的地方,这里说下两者之间的一个最大的区别: 1.java抽象类可以提供某些方法的实现,但是java接口不可以,这个可能是java抽象类唯一的优点,但是这个优点非常有用,如果向一个抽象类里加一个新的具体的方法,那么它所有的子类一下子都得到了这个新方法. 而java接口就做不到这一点,如果向一个java接口里加入一个新方法,所有实现这…
今天犯了个错: “接口变动,伤筋动骨,除非你确定只有你一个人在用”.哪怕只是throw了一个新的Exception.哈哈,这是我犯的错误. 一.接口和抽象类 类,即一个对象. 先抽象类,就是抽象出类的基础部分,即抽象基类(抽象类).官方定义让人费解,但是记忆方法是也不错的 — 包含抽象方法的类叫做抽象类. 接口就是把抽象的深度更深,它就像用简短的非逻辑的一些规则表示类之间的关系.可以比作协议,比如通信使用的UDP/TCP协议等. 小结:类与接口是Java语言的基本抽象单元. 二.为什么有接口的两…
Java接口和抽象类有什么区别,哪些时候用接口,哪些时候用抽象类? 2013-01-05 17:16:09|  分类: JAVA |  标签:java  |举报|字号 订阅     下面比较一下两者的语法区别:1.抽象类可以有构造方法,接口中不能有构造方法.2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法.4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然ec…
java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象类不能被实例化,也就是不能用new关键字来进行产生对象:4.抽象方法只能声明,不能被实现.5.抽象类的子类,必须实现所有抽象类的抽象方法(强调是抽象方法)否则子类还是抽象类:接口:1.接口里的变量默认为 public static final的类型的 所以接口中的变量就是个全局静态常量 2.接口中的…
今天看到项目中,写了一个抽象类,里面有很多方法继承了这类,当调用这个接口时,采用的是这个抽象类去调方法的,当时一想,这个不就是我们说的Java的多态的特征: 继承:存在继承关系的子类和父类 重写:子类对父类的某些方法进行重写(多态下调用的是子类重写的方法) 父类引用指向子类对象:即向上转型,将子类的引用赋给父类的对象 然后,我们调用的时候,就是通过父类的对象去调用方法的.但是,一想接口好像也可以实现多态,并不是抽象类才可以,我们只要多个类实现同一个接口,也可以实现多态, 因此,转着转着,就转到了…
关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). 4.接口的成员方法都是抽象方法(默认public abstract),接口中不可以有方法体. 5.一个类可以继承多个接口. 关于抽象类 1.创建一个抽象类,需要使用abstract关键字. 2.继承一个抽象类,需要使用extends关键字. 3.抽象类的成员属性规则与普通的类相同. 4.抽象类中可以…
一.接口 Java编程语言中禁止多继承属性,但可以通过接口来帮助类扩展方法.接口中可以定义大量的常量和方法,但其中的方法只是一种声明,没有具体的实现,使用接口的类自己实现这些方法. 接口与类的不同在于: (1) 没有变量的声明,但可以定义常量. (2) 只有方法的声明,没有方法的实现. 1. 接口声明的基本格式如下: [修饰符] interface 接口名 extends 接口列表{ [public] [static] [final] 常量; [public] [abstract] 方法; }…
接口可以是标志接口,里面没有任何常量和方法. 抽象类不一定必须有抽象方法,也可也没有方法,但含抽象方法的类必须被声明为抽象类. 在抽象层次结构中,Java接口在最上面,然后紧跟着抽象类,然后是一般类. 共同点: 1.都是抽象类型. 2.其中的抽象方法都必须被具体类实现. 3.如果要通过new创建他们的实例,都需要通过匿名内部类的方式. 不同点: 1. 继承角度一个具体类只能继承一个抽象类,但一个具体类可以实现多个接口. 2. 抽象类与抽象方法 a.抽象类中的抽象方法不能是私有的,但可以是默认,p…
一.java中的接口本质上是加约束的抽象类 //抽象类 public abstract class AExample { public abstract int add(int x,int y); public abstract int sub(int x,int y); } //接口 public interface IExample { public int add(int x,int y); public int sub(int x,int y); } 通常的用法是创建一个新类,这个类实现…
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的详细实现须要考虑的就不过一些算法和一些详细的业务实现了.当你须要再开发还有一个相近的项目时,你曾经的抽象层说不定还能够再次利用 .面对对象的设计,复用的重点事实上应该是抽象层的复用,而不是详细某一个代码块的复用. 说…
接口和抽象类的相同之处就是 都会有抽象方法 抽象方法就是一个没有方法体 等待继承的子类完成的方法 然而接口比较严格 它的方法必须是抽象方法且是公开的 抽象类 可以有自己的属性 和 实体方法 首相用面向对象的思想来理解,类其实就是将生活中客观存在的对象,将对象的属性和特性封装起来 而接口与类不同,它不可以被实例化(这里指单独将接口实例化),因为它不可以当作一个对象 接口可以被理解为一种技能,功能.比如一扇门门可以有防盗及这个技能也可以同时拥有报警的功能 也就是说 一个类可以实现多个接口 然而每个子…
本片随笔讲讲java中接口与抽象类. 一,接口 1.什么是接口? 那在日常生活中接口是什么呢?就是两个对象之间进行连接的部分就是接口,就比如热水器与水管的接口一样,他可以确保不同的东西之间的顺利连接,就如不同的热水器厂家和水管厂家只要按照接口的标准来进行生产.那么热水器和水管就可以顺利连接了.而在java领域中接口是抽象类的一种,只包含常量和方法是定义,而没有变量和方法的实现,且其方法都是抽象方法. 1.1.具体表现:1.通过接口实现列的相同行为,不用考虑类之间的关系.   2.通过接口指明需要…
Java接口: 总结了4点关于JAVA中接口存在的意义: 1.重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力. 2.简单.规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白). 3.维护.拓展性:比如你要做一个画板程序,…
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽…
对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类. 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: public abstract void open(); 抽象方法必须使用abstract关键字进行…
本次主角:抽象类 .接口. 对于皮皮潇这样一类的Java初学者来说,接口和抽象类如果不去花大量的精力与时间是很难弄清楚的,而我也是在最近这周的项目学习中感觉到了我对这两个概念不熟悉,所以导致对一些问题不能理解清楚,然后就去查阅资料对抽象类与接口做了一些总结. 1.抽象类: 抽象类的建立,实在抽象方法之后的,所以想要了解抽象类得先了解抽象方法,抽象方法由名字可以知道它是一种特殊的方法,是抽象的,只有方法的声明,没有具体的实现.所以不能看到它的功能,表现得就很抽象. 抽象方法必须要用abstract…
抽象类 <JAVA编程思想>一书中,将抽象类定义为"包含抽象方法的类".只要用abstract修饰的类就是抽象类,抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类.抽象方法是用abstract关键字修饰的方法,不用实现方法细节,由继承了它的子类去实现. [public] abstract class ClassName { abstract void fun(); } 抽象类注意三点: 抽象方法必须为public或protected,因为private无法被子类继承,…
Java有两种机制可以为某个抽象提供多种实现——Interface和abstract class. Interface 和 abstract class, 除了比较明显的区别(也就是能否提供基本实现), 比较重要的区别是—— 接口的实现类可以处于类层次的任何一个位置,而抽象类的子类则受到这一限制. Existing classes can be easily retrofitted to implement a new interface. 即,如果一个类要实现某个接口,只需要加上impleme…
父类定义了相关子类的共有属性和行为.而接口可以定义类的共同行为(包括非相关的类). 了解接口前,先来说说抽象类.抽象类介乎于普通类和接口之间,提供部分实现方法以及未实现方法,可以看作为一个半成品. 抽象类 在继承中, 父类是一个通用类,每一个子类都会使类变得越来越明确和具体.如果从子类追溯到父类,类就会变得通用.更加不明确.类的设计应该确保父类包含它的子类的共同特征和行为.有时候,一个父类会设计得非常抽象,导致它没有具体实例,这就是抽象类. 按照类和对象的关系来看:类是对象的抽象,是对象的模板,…
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽象,我就不能不提到曾让我头痛的Java接口和Java抽象类了,这也是本文我想说的重点. 既然面向对象设计的重点在于抽象,那J…
一. 抽象类和接口的特点  包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法.注意,抽象类和普通类的主要有三点区别: 1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public. 2)抽象类不能用来创建对象: 3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法.如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstrac…
转:http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 1 abstract void fun(); 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰.因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象. 下面要注意一个问题:…
相同点: 都位于继承的顶端,用于被其他实现或继承; 都不能实例化; 都包含抽象方法,其子类都必须覆写这些抽象方法;   区别: 抽象类为部分方法提供实现,避免子类重复实现这些方法,提供代码重用性;接口只能包含抽象方法; 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)   二者的选用: 优先选用接口,尽量少用抽象类; 需要定义子类的行为,又要为子类提供共性功能时才选用抽象类; 我的总结: 接口不能有构造函数,抽象类是可以有构造函数的, abstrac…
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过socket实现rpc,以及服务的注册和动态上下线.这里先上一篇RPC的实现者一webservice,便于后面理解源码执行过程,框架就是在原理的基础上提供更加便捷的使用而已,协议就是基于TCP或UDP之上,服务者和调用者之间约定消息按照什么样的格式发送以及解析罢了.协议没什么高深莫测的. 原文和作者…
抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承.抽象类不能创建对象 抽象类和普通类的区别 抽象类必须用public.procted 修饰(如果为private修饰,那么子类则无法继承,也就无法实现其抽象方法).默认缺省为 public 抽象类无法创建对象 如果一个子类继承抽象类…
1.抽象类 [public] abstract class ClassName { abstract void fun(); } extends 包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法.注意,抽象类和普通类的主要有三点区别: 1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public. 2)抽象类不能用来创建对象: 3)如果一个…
接口interface: 1. 在接口中没有变量,成员无论如何定义,都是公共常量,public static final即使不显式声明也如此. 2. 所有接口方法均隐含public abstract即使不显式声明也如此.(因而也不能使用protected和private修饰,不加修饰也不是默认权限) 3. 接口可以继承其他接口但是不能继承类,不能设计父接口中的方法,不能实现别的接口. 4. 任何类都可以引用接口,并对其中的方法进行自类中的实现. 抽象类abstract class: 1. 变量和…
最近在看设计模式,感觉需要先好好区分下抽象类和接口. 一.抽象类 <Java编程思想>中这样定义:包含抽象方法的类叫做抽象类. 解释: 1.包含,说明抽象类中可以有其他的具体方法. 2.因为抽象方法的存在,所以抽象类不能实例化. 二.接口 接口是用来建立类与类之间的协议,只提供抽象方法,不提供任何具体实现. 特点: 1.所有方法法访问权限自动被声明为public.确切的说只能为public,当然你可以显示的声明为protected.private,但是编译会出错! 2.接口中可以定义“成员变量…
abstract class 与interface都是用来定义抽象概念.例如,对于三角形.圆形.矩形这一些具体的概念,形状就是抽象的概念.因为抽象的概念在问题领域没有具体的概念,所以不能够实例化. abstract class表示这个对象是什么. interface表示这个对象能干什么. 一个类只能继承自一个类,却可以实现多个接口.一个类只能属于一种类别,即继承一个类.但一个类可以拥有不同的行为动作,即实现多个interface. 在使用上,可以把interface理解成特殊的abstract…
接口 1.接口可以继承多个接口,extends 接口1,接口2,接口3 2.接口的成员变量默认是public static abstract,必须初始化的: 3.接口只能有抽象方法,继承接口的类必须实现所有的抽象方法,但是如果是抽象类的话,就可以不实现. 4.接口的方法都是public abstarct的,隐式声明: 5.接口没有构造方法,不能直接实例化: 抽象类 1.抽象类不能生成对象,只能被继承使用: 2.抽象方法必须在抽象类中: 3.抽象类中的方法可以abstarct,也可以进行实现: 4…