一,用关键字abstract类修饰的类称为abstract类(抽象类)。
abstract class A{
………….
}
特点:
1. 抽象类中可以有抽象方法和非抽象方法,但是抽象方法只允许声明不允许实现,而且不允许使用final和abstract同时修饰一个方法。

 abstract class A{abstract int min (int x,int y);int max(int x,int y){return x>y?x:y;}
}

2.抽象类不能用new运算符创建对象。如果一个非抽象类是某个类的子类,那么它必须重写父类的抽象方法,给出方法体。

 abstract class A{abstract int sum(int x,int y);int sub(int x,int y){return x-y;}
}
class B extends A{int sum(int x,int y){//子类必须重写父类的sum方法return x+y;}
}

抽象类只关心操作,即只关心方法的名字,类型以及参数,不关心这些操作是怎么实现的,即不关系方法体。设计程序时,可以把几个类的共有的轮廓,重要特征抽象成一个抽象类,不需要关心具体细节。

二,java不支持多继承的,一个类只能继承一个父类,但是java引入了接口机制,一个类可以实现多个接口。

interface A{public final int a=10;public abstract void sum(int x,int y);public abstract void sub(int x,int y);
}
class B implements A{//使用implements来实现A接口void sum(int x,int y){return x+y;}void sub(int x,int y){//必须重写A接口的所有抽象方法return x-y;}
}

特点:
1.接口体类只能有常量和抽象方法,即方法都是等待实现的方法。
2,一个类实现了某个接口,必须重写该接口的所有方法
3.多个类可以实现同一个接口,一个类可以实现多个接口。
三,比较
1.接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
2.一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口),人是根源,吃饭,走路时接口。
3.一个类可以实现多个接口,因为一个对象的动作有很多,但是只能继承一个类,因为一个对象的根,本质只有一个。
4.接口中所有的方法都是抽象的,没有一个有程序体。抽象类是可以有非抽象方法。抽象类和接口中的抽象方法都不实现。

abstract类和接口interface的联系和区别相关推荐

  1. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

  2. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  3. Java抽象类(Abstract Class)与接口(Interface)区别

    抽象类与接口比较 抽象类跟接口类似,都不能实例化,可能包含不需实现方法或已实现的方法. 抽象类可以定义一些不是静态或常量的字段,定义 public, protected, private访问级别的具体 ...

  4. c#中抽象类(abstract)和接口(interface)的相同点与区别

    相同点: 1.都可以被继承 2.都不能被实例化 3.都可以包含方法声明 4.派生类必须实现未实现的方法 区别: 1.抽象基类可以定义字段.属性.方法实现.接口只能定义属性.索引器.事件.和方法声明,不 ...

  5. C# 类实现接口(Interface) 多态 多继承

    什么是接口 接口在程序中起到规范代码的作用,例如:电脑的USB接口,这些都是已经定义好的了,制造鼠标键盘U盘等厂家就按这种规格做出来的成品在任何电脑上都可以直接使用,而不需要进行适配,这就是规范的使用 ...

  6. JAVA的abstract修饰符 接口interface用法 抽象类和interface的差别

    转自:http://blog.csdn.net/zhandoushi1982/article/details/8458081 abstract修饰符可以修饰类和方法. (1)abstract修饰类,会 ...

  7. 抽象基类与接口,共性与个性的选择!

    抽象基类与接口,共性与个性的选择! C#中的抽象基类(Abstract Class)和接口(Interface)都实现了面向对象中的继承机制,它们通过定义抽象方法匀实现了对继承类的功能上的约束,那么在 ...

  8. 【转】抽象基类与接口,共性与个性的选择!

    抽象基类与接口,共性与个性的选择! C#中的抽象基类(Abstract Class)和接口(Interface)都实现了面向对象中的继承机制,它们通过定义抽象方法匀实现了对继承类的功能上的约束,那么在 ...

  9. 抽象基类与接口,共性与个性的选择!(区别)

    C#中的抽象基类(Abstract Class)和接口(Interface)都实现了面向对象中的继承机制,它们通过定义抽象方法匀实现了对继承类的功能上的约束,那么在如何在恰当的场景选择恰当的继承机制是 ...

最新文章

  1. 6、UmbracoNewsSite:添加新闻分类
  2. 专访阿里云域名与网站业务总经理宋瑛桥:域名未来将更加个性化、生态化和规范化...
  3. storm的基本概念
  4. mogodb 的自定义函数定义及引用
  5. w7计算机不显示cdf盘,微软确认Win7SP1再现黑屏错误
  6. POSIX和SYSTEM的消息队列应该注意的问题
  7. 前端:CheckBox事件函数js
  8. 如何借助OpManager解决存储监控问题?
  9. 高一计算机信息基础课本内容,高中信息技术基础(必修)_教案
  10. 做到这一点,帮你每年多赚10万!
  11. 58、JAVA Collections集合排序相关静态方法---方法1
  12. java课程设计 雍俊海_java课程设计模拟科学计算器【参考】.doc
  13. An element could not be located on the page using the given search parameters.
  14. C语言在坐标轴上输出曲线,C语言打印正弦曲线、直线、圆等等
  15. 深度学习基础--SOFTMAX回归(单层神经网络)
  16. 获取某个时间的当月起止时间
  17. 基于MATLAB二分法求解一元二次方程的根
  18. C语言基础09——数据在内存中的存储。整型的存储、大小端讲解、浮点数的存储、杨辉三角、找凶手、猜名次
  19. ACM-ICPC 2018 南京赛区网络预赛丨AC Challenge丨状压DP
  20. 记录CentOS8 开机卡住的问题解决过程

热门文章

  1. MDK:assert_param函数未定义的错误:Error: L6218E
  2. 深度学习概览之自然语言处理:从基本概念到前沿研究
  3. C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板和static
  4. 《图解密码技术》分组密码(3) 密文分组链接CBC模式
  5. C++ Primer 5th笔记(chap 13 拷贝控制)综述
  6. 初等数论--原根--原根间的关系,原根个数
  7. 设计模式--观察者(Observer)模式
  8. 【Python Turtle合集】”外面的花已经开得很像样了, 我看到风拥作一团, 前来庆贺“(春天来啦~)
  9. 动态规划(浅层基础)
  10. 关于LookupError: No installed app with label ‘admin‘.报错的解决