类如何去实现接口


Posted in 面试题 onDecember 19, 2013
接口规定了“原型”,具体实现则由类来完成,格式如下:
[修饰符] class 类名[extends 基类] implements 接口1[,接口2,…]{
…… //包含对接口的所有方法的实现
}
说明:
一个类实现接口时,必须实现接口中的所有抽象方法;否则,该类应声明为抽象类;
类在实现接口的抽象方法时,必须使用完全相同的方法头,例如:接口中的方法声明时通常省略public修饰符,但在实现抽象方法时必须显式书写public修饰符;
一个类可以实现多个接口,从而达到多重继承的目的;
多个无关的类可以实现同一个接口;
与抽象类相比,使用接口的好处是不相关类实现的相同行为,而不需要考虑这些类之间的层次关系。
例如:
//接口应用例子
interface Runner { //接口1
public void run();
}
interface Swimmer { //接口2
public void swim();
}
abstract class Animal { //抽象类,去掉关键字abstract是否可行?
public abstract void eat();
}

class Person extends Animal implements Runner,Swimmer { //继承类,实现接口
public void run() {
System.out.println("我是飞毛腿,跑步速度极快!");
}
public void swim(){
System.out.println("我游泳技术很好,会蛙泳、自由泳、仰泳、蝶泳...");
}
public void eat(){
System.out.println("我牙好胃好,吃啥都香!");
}
}
public class InterfaceTest{
public void m1(Runner f) { f.run(); } //接口作参数,下同
public void m2(Swimmer s) {s.swim();}
public void m3(Animal a) {a.eat();}

public static void main(String args[]){
InterfaceTest t = new InterfaceTest();
Person p = new Person();
t.m1(p); //接口回调,下同
t.m2(p);
t.m3(p);
}
}

Tags in this post...

面试题 相关文章推荐
JAVA的事件委托机制和垃圾回收机制
Sep 07 面试题
如何打印出当前源文件的文件名以及源文件的当前行号
Apr 05 面试题
如何查询Oracle数据库中已经创建的索引
Oct 11 面试题
杭州联环马网络笔试题面试题
Aug 04 面试题
new修饰符是起什么作用
Jun 28 面试题
linux面试题参考答案(7)
Oct 29 面试题
数据库测试通常都包括哪些方面
Nov 30 面试题
软件测试企业面试试卷
Jul 13 面试题
MYSQL支持事务吗
Aug 09 面试题
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Jul 02 面试题
Java程序员常见面试题
Jul 16 面试题
Java基础知识面试题
Mar 25 面试题
异常和异常类的概念
Sep 12 #面试题
益模软件Java笔试题
Mar 27 #面试题
纬创Java面试题笔试题
Oct 02 #面试题
包装类的功能、种类、常用方法
Jan 27 #面试题
怎样声明接口
Sep 19 #面试题
群胜软件Java笔试题
Sep 29 #面试题
类、抽象类、接口的差异
Jun 13 #面试题
You might like
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
PHP新手入门学习方法
2011/05/08 PHP
PHP多个版本的分析解释
2011/07/21 PHP
PHP数组相关函数汇总
2015/03/24 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
脚本收藏iframe
2006/07/21 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
解析jQueryEasyUI的使用
2016/11/22 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
python的中异常处理机制
2018/08/30 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
政协常委会议主持词
2015/07/03 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL