abstract class 与interface都是用来定义抽象概念。例如,对于三角形、圆形、矩形这一些具体的概念,形状就是抽象的概念。因为抽象的概念在问题领域没有具体的概念,所以不能够实例化。

abstract class表示这个对象是什么。

interface表示这个对象能干什么。

一个类只能继承自一个类,却可以实现多个接口。一个类只能属于一种类别,即继承一个类。但一个类可以拥有不同的行为动作,即实现多个interface。

在使用上,可以把interface理解成特殊的abstract class,一个只能包含抽象方法、已初始化的静态成员变量的abstract class。

package me;

public interface InterTest {

    public static final int a = 0;

    int b = 0;

    public abstract void inter();

    void inf ();

}

在interface中,成员变量默认有public static final修饰、方法默认有public abstract修饰。因为成员变量有final修饰,成员变量必须已初始化。

package me;

public abstract class AbstTest {

    int a;
public int b;
private int c;
protected int d; AbstTest() { } public int getC() {
return c;
} public void setC(int c) {
this.c = c;
} static void abs() { } protected abstract String inf(); }

在抽象类中,可以有构造方法、成员变量、非抽象的普通方法、非抽象静态方法以及protected修饰的抽象方法。

JAVA 接口与抽象类的区别的更多相关文章

  1. java 接口和抽象类的区别

    java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...

  2. Java接口和抽象类的区别

    今天看到项目中,写了一个抽象类,里面有很多方法继承了这类,当调用这个接口时,采用的是这个抽象类去调方法的,当时一想,这个不就是我们说的Java的多态的特征: 继承:存在继承关系的子类和父类 重写:子类 ...

  3. java接口和抽象类的区别和作用(功能、用途、好处)

    Java接口: 总结了4点关于JAVA中接口存在的意义: 1.重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋 ...

  4. 《Java基础知识》Java接口和抽象类的区别

    抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public ...

  5. java接口与抽象类的区别

    接口可以是标志接口,里面没有任何常量和方法. 抽象类不一定必须有抽象方法,也可也没有方法,但含抽象方法的类必须被声明为抽象类. 在抽象层次结构中,Java接口在最上面,然后紧跟着抽象类,然后是一般类. ...

  6. Java接口和抽象类有什么区别,哪些时候用接口,哪些时候用抽象类?

    Java接口和抽象类有什么区别,哪些时候用接口,哪些时候用抽象类? 2013-01-05 17:16:09|  分类: JAVA |  标签:java  |举报|字号 订阅     下面比较一下两者的 ...

  7. 【Java知识点专项练习】之 接口和抽象类的区别

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

  8. java中的接口和抽象类的区别

    1.接口从用户的角度(使用实现的代码)看问题. 2.接口由编译器强制的一个模块间协作的合约. 3.无成员变量. 4.成员函数只能声明不能实现,(jdk1.8中的default 方法可以有方法体). 接 ...

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

    抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public ...

随机推荐

  1. sklearn Model-selection + Pipeline

    1 GridSearch import numpy as np from sklearn.datasets import load_digits from sklearn.ensemble impor ...

  2. SQL复制一个表的数据到另一个表

    最近做一个项目,由于客户数据量大,为了不将数据彻底删除,于是将数据移动到历史表,原始表的数据删除.由于技术有限,想不到好的方法,于是写个存储过程 执行,为了防止执行过程中出现异常,执行不完整.用到hI ...

  3. 如何在page_load方法判断是服务器端控件引发的page_load方法

    动态获取单击的服务器端控件的id值 private string getPostBackControlName()    {        Control control=null;        s ...

  4. javascript编程: JSON, Mapping, 回调

    使用 Javascript  编程, 组合使用 JSON 数据格式,Mapping 和回调技术, 可以产生很强的表达效果. 在实际工作中, 总会有数据汇总的需求. 比如说, 取得了多个 device ...

  5. Linux 多线程编程 实例 1

    子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码. #include <pthread.h> ...

  6. 使用 greenDao 框架 操作数据库

    0.效果图

  7. android手电筒(摇一摇也可开启手电筒)

    package com.firefly.myflashlight; import android.app.Activity; import android.hardware.Camera; impor ...

  8. libjingle_peerconnection

    最近在学习libjingle_peeconnection的代码 不知道应该如何写起,就先从类和各种数据结构列起吧 PeerConnectionFactory: 在创建PeerConnectionFac ...

  9. Android网络框架源码分析一---Volley

    转载自 http://www.jianshu.com/p/9e17727f31a1?utm_campaign=maleskine&utm_content=note&utm_medium ...

  10. [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化)

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...