Java接口interface
Java接口interface
1、多个无关的类可以实现同一个接口。
2、一个类可以实现多个无关的接口。
3、与继承关系类似,接口与实现类之间存在多态性。
接口(interface)是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。实现一个接口,用implements ,实现一个接口必须重写接口中的所有方法。
接口定义的举例:
public interface Runner{
public static final int id=1;
public void start();
public void run();
public void stop();
}
接口的特性:
1、接口可以多重实现,即一个类可以实现多人接口。
2、接口中声明的属性默认为public static final ;也只能是public static final 。
3、接口中只能定义抽象方法,而且这些方法默认为public ,也只能是public 。
4、接口可以继承其它的接口,并添加新的属性和抽象方法。
接口的举例:
interface Singer{
public void sing();
public void sleep();
}
Class Student implements Singer{
private String name;
Student(String name){
this.name=name;
}
public vod study(){
System.out.println("studying");
}
public Sting getName(){
return name;
}
public void sing(){
System.out.println("Student is singing");
}
public void sleep(){
System.out.println("student is sleeping");
}
}
接口与实现类之间的多态性举例:
public class Test{
public static void main(String arg[]){
//Singer是接口,在上面已经定义了。
//student是接口Singer有实现类。
Singer s1=new student("le");
s1.sing();
//s1此时调用的是student中的sing()方法。
s1.sleep();
}
}
接口的综合举例:
public interface Valuable{
public double getMoney();
}
interface Protectable{
public void beProtected();
}
//接口与接口之间可以继承
interface A extends Protectable{
void m();
}
abstract class Animal{
private String name;
abstract void enjoy();
}
//继承一个类要重与父类中所有的方法,或者是实现一个接口要重写接口中的所有方法。
class GoldenMonkey extends Animal implements Valuable,Protectable{
public double getMoney(){
return 10000;
}
public void beProtectable(){
System.out.println("live in the room");
}
public void enjoy(){
}
public void test(){
Valuable v=new GoldenMonkey();
v.getMonen();
Protectable p=(Protectable)v;
p.beProtectable();
}
}
class Hen implements A{
public void m(){}
public void beProtected(){}
}
Java接口interface的更多相关文章
- Java——接口interface
3.5接口interface ①有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. ②接口(interface)是抽象方法和 ...
- 浅谈Java接口(Interface)
浅谈Java接口 先不谈接口,不妨设想一个问题? 如果你写了个Animal类,有许多类继承了他,包括Hippo(河马), Dog, Wolf, Cat, Tiger这几个类.你把这几个类拿给别人用,但 ...
- Java 接口 interface implements
接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定 ...
- 详解java接口interface
引言 接口这个词在生活中我们并不陌生. 在中国大陆,我们可以将自己的家用电器的插头插到符合它插口的插座上: 我们在戴尔,惠普,联想,苹果等品牌电脑之间传输数据时,可以使用U盘进行传输. 插座的普适性是 ...
- Java接口interface,匿名内部类
接口 1.接口内部为 常量+公用的抽象方法.类必须实现接口中的所有方法 2.接口的语法格式:不写abstract会自动添加,可以继承多个接口 修饰符不能使private,protected [修饰符] ...
- java接口(interface)
引入:抽象类是从多个类中抽象出来的模板,若要将这种抽象进行得更彻底,就得用到一种特殊的“抽象类”→ 接口; 例子: 生活中听说过的USB接口其实并不是我们所看到的那些插槽,而是那些插槽所遵循的一种规范 ...
- Java 接口和抽象类差别
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上 ...
- Java 接口和抽象类区别(写的很好,转了)
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是 ...
- Java 接口和抽象类--缺省模式
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体 ...
随机推荐
- rhel7 配置普通用户使用sudo
rhel服务器版本安装之后,默认创建的用户不能使用sudo.使用sudo,会提示 user1 is not in the sudoers file. This incident will be rep ...
- Java并发编程(一)-为什么要并发
并发所带来的好处 1. 并发在某些情况(并不是所有情况)下可以带来性能上的提升 1) 提升对CPU的使用效率 提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论 ...
- 关于java的Synchronized,你可能需要知道这些(下)
上一篇文章介绍了synchronized的基本使用方法和实现,在实现部分说明了synchronized的底层实现依赖系统互斥锁mutex,但是这个一个重型锁,竞争导致线程阻塞挂起,后续拿到锁后再恢复线 ...
- RDO Stack: Install newton in the dashboard can't create images
Issue: When you want to create an image in RDO stack newton version, you may encounter following err ...
- 安卓高级 Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- [Angular2]eclipse中angular2开发环境的搭建
本文作者:苏生米沿 本文地址:http://blog.csdn.net/sushengmiyan 环境准备 1.eclipse neon 2.网络连接 插件地址 eclipse的插件市场地址: htt ...
- Objective-C方法与函数的区别
Objective-C方法与函数的区别 方法是唯对象所有 函数是不依赖于对象存在的 方法 函数 - (void)test; void test(); 方法是以减号 - 开头 - 类型要用()括起来 - ...
- XListView下拉刷新和上拉加载更多详解
转载本专栏每一篇博客请注明转载出处地址,尊重原创.博客链接地址:小杨的博客 http://blog.csdn.net/qq_32059827/article/details/53167655 市面上有 ...
- Racket 模拟SICP的流(延时计算)
默认的Racket是要对函数参数进行求值的, 例如(f 1 (+ 1 2))里面,(+ 1 2)要先求值为3,变为(f 1 3)再进行下一步操作.因此, Racket若按照SICP使用define关键 ...
- 28 自定义View侧滑栏
ScrollMenuView.java package com.qf.sxy.customview03.widget; import android.content.Context; import a ...