接口由全局常量和公共的抽象方法组成,接口的定义格式:

 interface 接口名称{
全局常量;
抽象方法;
}

接口中的抽象方法必须定义为public访问权限,在接口中如果不写也默认是public访问权限


接口的定义:

 interface A{
public static final String AUTHOR = "张宇"; //定义全局常量
public abstract void print(); //定义抽象方法
public abstract String getInfo(); //定义抽象方法
}

但是在接口的定义中已经声明了接口是由全局常量和抽象方法组成的,所以可以简化为以下格式:

 interface A{
String AUTHOR = "张宇"; //等价于:public static final String AUTHOR = "张宇";
void print(); //等价于:public abstract void print();
String getInfo(); //等价于:public abstract String getInfo();
}

与抽象类一样,接口若要使用也必须通过子类,子类通过implement关键字实现接口:

 class 子类 implement 接口A,接口B,...{
}

实现接口:

 interface A {
public String AUTHOR = "张宇";
public void print();
public String getInfo();
}
interface B {
public void say();
}
class X implements A,B{ //子类同时实现两个接口
@Override
public void say() { //覆写接口B中的抽象方法
System.out.println("Hello World");
}
@Override
public void print() { //覆写接口A中的抽象方法
System.out.println("姓名:"+AUTHOR);
}
@Override
public String getInfo() { //覆写接口A中的抽象方法
return "Hello";
}
}
public class Demo {
public static void main(String[] args) {
X x = new X();
x.say(); //调用被覆写过的方法
x.print();
}
}

除此之外,接口也可以继承,且多继承

 interface 子接口 extends 父接口A,父接口B,...{
}

如果一个子类又要继承抽象类又要继承接口,可用以下格式:

 class 子类 extends 抽象类 implement 接口A,接口B,...{
}

JAVA面对对象(五)——接口的更多相关文章

  1. java 复制对象 (克隆接口 与 序列化)

    关于java对象复制我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量采用的是值传递,而对于对象比如bean传递时采用的是应用传递也就是地址传递,而很多时候对于对象传递我们也 ...

  2. java 面对对象(抽象 继承 接口 多态)

    什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接 ...

  3. java面对对象 关键字this super

    this:this是指向对象本身的一个指针,成员函数内部指向当前类的对象 其实this主要要三种用法: 1.表示对当前对象的引用! 2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是 ...

  4. java面对对象(六)--内部类、匿名内部类

    内部类 可以在一个类的内部定义另一个类这种类成为内部类或嵌套类,比如: class Outer{ … class Inner{ …. } } class Outer1{} // 这个Inner1不是O ...

  5. java面对对象入门(4)-程序块初始化

    Java实例初始化程序是在执行构造函数代码之前执行的代码块.每当我们创建一个新对象时,这些初始化程序就会运行. 1.实例初始化语法 用花括号创建实例初始化程序块.对象初始化语句写在括号内. publi ...

  6. JAVA面对对象(四)——抽象类

    抽象类的作用类似“模板”,可以根据它的格式来修改.创建新的类:但是不能直接由抽象类创建对象只能通过抽象类派生出新的类,再由它来创建对象:抽象类的使用同样是单继承,即一个子类只能继承一个抽象类 抽象类的 ...

  7. JAVA面对对象(三)——Super、static、final关键字

    Super 使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 public class P ...

  8. JAVA面对对象(二)——继承、方法的覆写

    1.继承就是基于已存在的类构造一个新类,继承已存在的类就能复用类的方法和属性,并且能够添加新的方法和属性.也就是子类和父类 2.一个父类可以拥有多个子类,一个子类只允许有一个父类 3.用extends ...

  9. JAVA面对对象(一)——封装

    1.封装思想:将对象的属性和行为封装起来的载体是类,类通常对客户隐藏其实现的细节 2.封装就是将属性私有化(private),并提供公共的方法(public)访问私有属性 3.通过封装,实现对属性数据 ...

随机推荐

  1. vue+webpack安装sass过程中遇到权限不够,直接删除node_modus文件夹重新安装,node_modus先取得管理员权限才能删

    vue vue-style-loader !css-loader错误 最近在学习vue框架,使用webpack打包vue项目,在执行npm run start的时候 出现如下错误: This depe ...

  2. 如何用命令行刷新,启用,禁用Magento2的缓存

    当你使用Magento商店时如何刷新Magento 2中的Cache命令行是基本的常用操作.Magento 2默认有12种缓存类型.在命令行中有5个简单的命令来管理缓存.在这篇文章中,我将逐步向您展示 ...

  3. 对原型(prototype)理解?

    Javascript是一种通过原型实现继承的语言,与别的高级语言是有区别的,像Java,C#是通过类型决定继承关系的,JavaScript是的动态的弱类型语言,总之可以认为JavaScript所有都是 ...

  4. ucml 连接虚字段

  5. MATLAB——LMS算法(△规则Delta Rule)

  6. MySQL(五)汇总和分组数据

    一.汇总数据 工作中经常需要汇总数据而不是将它们全部检索出来(实际数据本身:返回实际数据是对时间和处理资源的浪费),这种类型的检索有以下特点: ①确定表中的行数(或者满足某个条件或包含某个特定值的行数 ...

  7. android 给LinearLayout中添加一定数量的控件,并让着一定数量的控件从右到左移动,每隔若干秒停顿一下,最后一个view链接第一个view,然后继续移动循环往复,形成一个死循环简单动画效果

    主类:IndexAnimationLinearLayout.java package com.yw.sortlistview; import java.util.ArrayList; import j ...

  8. C#以管理员用户打开某个程序

    static void Main(string[] args) { string path = @"C:\Windows\AppPatch\AppLoc.exe"; Process ...

  9. Oracle 把查询的多个字段赋值给多个变量

    select f1,f2,f3 into v1,v2,v3 from tab1

  10. 移动电力猫HG260GT pon实现路由拨号

    帐号CMCCAdmin密码aDm8H%MdA 需要将原来上网的路由模式改成如下图中的桥接模式 实际应该就是将上网vlan连接到了1号口,这样路由就可以通过一号口接入拨号了 修改后再通过无线接入路由就不 ...