博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Java 基础]接口
阅读量:6203 次
发布时间:2019-06-21

本文共 1520 字,大约阅读时间需要 5 分钟。

抽象类和抽象方法


 

抽象方法
在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中。
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 {};

 

转载于:https://www.cnblogs.com/jingmoxukong/p/4226735.html

你可能感兴趣的文章
思科将制止盗版及Dy模拟器现象,IOS也要黑屏么?
查看>>
[linux][KVM]
查看>>
UILabel和UITextView文字换行差异
查看>>
struts2乱码
查看>>
Run hadoop example
查看>>
maven常用配置的变量
查看>>
[转] SharePoint 2013配置启用搜索服务
查看>>
80后最牛的辞职信,最近哥倍感压力
查看>>
使用新浪微博Android SDK
查看>>
网络管理 之 Fedora Core 网络配置工具system-config-network介绍
查看>>
遍历Map的四种方法
查看>>
coding源码分析:架构篇(待再更新)
查看>>
开源日志系统比较
查看>>
linux WebService (gsoap)
查看>>
git的一些操作
查看>>
我的友情链接
查看>>
SQL SERVER:LEFT/RIGHT/SUBSTRING/CHARINDEX
查看>>
辨析企业真正需要的数据备份技术 ------BizU数据宝
查看>>
[转载] 七龙珠第一部——第029话 冒险再度开始
查看>>
2014.12.8 C语言复习
查看>>