接口 抽象类

转载 2015年07月09日 15:31:53
横看接口竖看类:横向扩展使用接口;纵向扩展使用抽象基类;横向和纵向都要扩展,使用抽象基类实现接口
1.Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,如果实现一个接口就必须实现它所有的方法。
2.如果给一个接口增加一个方法,他所有的实现类必须都加上这个方法,就算里面什么都不写。
3.一个具体的Java类应当只实现Java接口和抽象Java类中声明的方法,而不应当给多余方法。
4.接口针对的是某一件事而不是针对的某一个类
5.类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。
6.抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声名必须用public来修饰没有具体实现的方法。
7.抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static fainl)。
8.这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。 

接口可以继承接口 不能实现接口,抽象类可以实现接口不处理方法,但是实现类继承了抽象类则需要实现抽象类继承的接口的方法

接口属性值默认为 public static  final 常量不能更改  接口就是提供一种统一的’协议’,而接口中的属性也属于’协议’中的成员.它们是公共的,静态的,最终的常量.相当于全局常量.

接口只是对一类事物的属性和行为更高层次的抽象对修改关闭,对扩展(不同的实现implements)开放
接口是对开闭原则的一种体现
继承一个实现了某个接口的类 也就实现了那个接口
抽象类是在接口和实体类之间的一个桥梁 


在面向对象领域,抽象类主要用来进行类型隐藏。
我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。
这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。
好比,动物是一个抽象类,人、猴子、老虎就是具体实现的派生类,我们就可以用动物类型来隐藏人、猴子和老虎的类型(java的委托机制)
做一个接口叫做飞行FlyAnimalAction,里面定义一个方法叫做flying,再定义一个方法叫做eat 
做一个类叫做蚊子实现接口,蚊子要实现flying方法,实现自己的eat方法 
做一个类叫做苍蝇实现接口,苍蝇也要实现flying方法,实现自己的eat方法 
你发现所有会飞的动物都要实现这个接口,很麻烦,不如 
做一个抽象类FlyAnimal,然后实现上面的接口 
在里面实现flying这个方法,因为大部分的飞行动作是一样的,而eat方法则继续写成抽象方法,因为大部分的动物吃东西是不一样的 


举报

相关文章推荐

java接口与抽象类的区别总结

接口与抽象类的区别总结

JAVA抽象类和接口

本文是本人学习网络上各位大牛的总结。 一、抽象类 在面向对象领域由于抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能实例化的。 抽象类体现了数据抽象的思想,是实...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Java接口和抽象类的详解

Java接口和抽象类的详解

抽象类和接口的区别

抽象类和接口的区别 接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接...

抽象类与接口的区别及应用(本文由张洋提供)

抽象类(Abstract Class)与接口(Interface)是面向对象程序设计中两个重要的概念。由于两者在自身特性及应用方法上存在诸多相似性,如都不能实例化、都可以被继承(严格来说对于接口应该叫...

Java抽象类abstract class与接口interface

abstract是抽象修饰符,用来修饰类和方法。 用abstract修饰的类都是抽象类。用abstract修饰的方法是抽象方法。 抽象方法只有方法体,并无具体的方法体和方法实现。 有抽象方法的类必须定...

抽象类与接口的区别

抽象类和接口联系与区别 关键字: 抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的...

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

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static...

java面向对象二:抽象类、接口

一、抽象类:abstract 二、接口: 三、抽象类和接口:具有扩展性,降低耦合度

黑马程序员------------抽象类 接口

-----------android培训、java培训、java学习型技术博客、期待与您交流!----------- 抽象类  一、抽象的定义         抽象就是从多个事物中将...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)