[Java 基础]接口

简介: 抽象类和抽象方法   抽象方法 在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中。 java中,抽象方法就是以 abstract 修饰的方法,只需要声明而不需要实现 abstract void f();   抽象类 包含抽象方法的类叫抽象类。

抽象类和抽象方法


 

抽象方法
在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中。
java中,抽象方法就是以 abstract 修饰的方法, 只需要声明而不需要实现
abstract  void f();

 

抽象类

包含抽象方法的类叫抽象类。

abstract  class Sample {
     private  int param1;
     abstract  void f1();
     void f2() {}
}
注:

1、如果一个类包含有抽象方法,则必须限定为抽象类,否则编译器会报错。

2、抽象类不能实例化,否则编译器会报错。

 

 

接口
什么是接口

java中,接口是以 interface 来修饰的。

接口可以被视为一个比“抽象类”更加抽象的类。

实现接口

一个类遵循某个特定或一组接口,必须使用 implements 关键字。

interface Fly {
     void fly();
}

class Bird  implements Fly {
    @Override
     public  void fly() {
        System.out.println("展翅飞翔");
    }    
}

注:接口中的方法必须是 public 类型,可以不显示地指定。但是如果指定为其他类型,编译器会报错。

扩展接口

玩过游戏的朋友们,肯定熟悉这个模式。

一名战士需要具备战斗能力。一名骑士不仅需要具备战斗能力,也需要具备骑术。

更进阶的圣骑士则还需要具备法师一般的魔法能力。这个关系可以抽象成以下代码:

interface Warrior {
     void fight();
}

interface Knight  extends Warrior {
     void riding();
}

interface Enchanter {
     void magic();
}

//  Paladin类实现多个接口,需要包含这些接口的所有方法
class Paladin  implements Knight, Enchanter {
     public  void fight() {}
     public  void riding() {}
     public  void magic() {}
}


多重继承

请考虑如下图的情况,一名在职研究生既是职工,也是学生,也是研究生。如果我们要在代码中实现这个继承关系,该如何去做?

C++中支持多重继承,但是JAVA中不支持多重继承,以下方式是错误的。一个类不能扩展多个类。

class Person {};
class Student  extends Person {};
class Postgraduate  extends Student {};
class Employee  extends Person {};
class OnJobPostgraduate  extends Postgraduate, Employee {};

JAVA中虽然不支持多重继承,但是可以通过接口实现类似的行为。一个类可以实现多个接口。

interface Person {};
interface Student  extends Person {};
interface Postgraduate  extends Student {};
interface Employee  extends Person {};
class OnJobPostgraduate  implements Postgraduate, Employee {};

 

目录
相关文章
C4.
|
6月前
|
Java
Java的接口
Java的接口
C4.
47 0
|
Java
Java中的接口
Java中的接口
36 0
|
Java
Java之接口
Java之接口
61 0
|
Java
Java-接口(上)
Java-接口(上)
78 0
|
Java
Java-接口(下)
Java-接口(下)
94 0
|
Java
【Java】接口
【Java】接口
40 0
|
Oracle Java 关系型数据库
java 接口 详解
java 接口 内容分享,本篇博文为java 面向对象三大特性——多态篇的补充。
213 0
java 接口 详解
|
Java
<<Java>>接口
<<Java>>接口
102 0
<<Java>>接口