JAVA学习遇到的问题:接口实现
引用知乎看到对接口的总结:
比如说你饿了,看到前面有个挂着KFC的店,然后你想到可以进去买汉堡了。
KFC就是接口,我们看到了这个接口,就知道这个店会卖汉堡(实现接口)。
那么为什么我们要去定义一个接口,这个店可以直接卖汉堡啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不知道里面卖的是啥。
我们可能就要进去问,你这里卖不卖汉堡啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。
我们可能就要记住,XX路XXX号卖汉堡,XX...(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖汉堡,我们也不可能知道(不利于扩展)。
接口的定义如下:
[修饰符]interface<接口名>[extends<接口列表>]
{
数据成员; //默认为public static final
成员函数; //默认为public abstract
}
注意:接口可实现多重继承
接口的实现如下:
[访问修饰符]class 类名 implements[接口列表]
{
public 成员函数;
}
示例如下:
interface InterFace0{
void print();
}
class InterFace1 implements InterFace0{
public void print(){
System.out.println("接口InterFace0实现");
}
}
public class InterFace {
public static void main(String args[]){
InterFace1 inter = new InterFace1();
inter.print();
}
}
接口的多重继承:
1.可以让一个接口去继承多个接口, 再用一个类来实现接口
interface InterFace0{
void print0();
}
interface InterFace1{
void print1();
}
//接口InterFace2继承InterFace0,InterFace1
interface InterFace2 extends InterFace0,InterFace1{
}
//achieve类实现接口
class achieve implements InterFace2{
public void print0(){
System.out.println("InterFace0 print0方法");
}
public void print1(){
System.out.println("InterFace1 print1方法");
}
}
public class InterFace {
public static void main(String args[]){
achieve inter = new achieve();
inter.print0();
inter.print1();
}
}
//输出:
//InterFace0 print0方法
//InterFace1 print1方法
2.也可以让一个类去继承多个接口
interface InterFace0{
void print0();
}
interface InterFace1{
void print1();
}
//类achieve继承InterFace0,InterFace1两个接口
class achieve implements InterFace0,InterFace1{
public void print0(){
System.out.println("InterFace0 print0方法");
}
public void print1(){
System.out.println("InterFace1 print1方法");
}
}
public class InterFace {
public static void main(String args[]){
achieve inter = new achieve();
inter.print0();
inter.print1();
}
}
//输出:
//InterFace0 print0方法
//InterFace1 print1方法
JAVA学习遇到的问题:接口实现的更多相关文章
- Java学习笔记之---比较接口与抽象类
Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有 ...
- 【Java学习笔记】Map接口的子接口---TreeMap
TreeMap,与TreeSet类似,可以对集合中的元素进行排序,同时保持元素的唯一性. 应注意,Comparable(实现接口,记得覆盖comparaTo方法),Comparator的使用. imp ...
- Java学习笔记——继承、接口、多态
浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...
- Java学习个人备忘录之接口
abstract class AbsDemo { abstract void show1(); abstract void show2(); } 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类 ...
- java学习笔记——Collection集合接口
NO 方法名称 描述 1 public boolean add(E e) 向集合中保存数据 2 public void clear() 清空集合 3 public boolean contains(O ...
- Java学习:常用函数接口
常用函数接口 什么是函数式接口? 函数式接口,@FunctionalInterface,简称FI,简单的说,FI就是指仅含有一个抽象方法的接口,以@Functionalnterface标注 注意:这里 ...
- Java学习笔记-抽象类与接口
抽象类用于在类中不用具体实现,而在子类中去实现的类 抽象类 抽象类概述 抽象定义:抽象就是从多个事物中将共性的,本质的内容抽取出来 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完 ...
- Java学习笔记(十)面向对象---接口
理解 初期理解 可以认为接口是一个特殊的抽象类.当接口中的方法都是抽象的,那么该类可以通过接口的形式来表示. class用于定义类 interface用于定义接口 格式特点 接口中常见定义:常量,抽象 ...
- java学习笔记(1)——有关接口
接口: interface intf0{ public void doSomething(); } interface intf1{ public void doAnything(); } class ...
- Java学习笔记:03面向对象-接口_多态
1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
随机推荐
- mysql自增主键归零的方法
最近老是要为现在这个项目初始化数据,搞的很头疼,而且数据库的Id自增越来越大,要让自增重新从1开始:那么就用下面的方法吧:方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从 ...
- JAVA RMI 实例
下面我将介绍一个完整的实例,让初学者能快速体验RMI的功用. 分为以下四个步骤 1. 创建远程接口及声明远程方法(HelloInterface.java)2. 实现远程接口及远程方法(继承Unicas ...
- Linux下面CentOS 7桌面的安装
搭建本地yum仓库的方法 http://www.cnblogs.com/lql123/p/5952788.html 1.yum grouplist #列出yum仓库里的软件组列表 2.yum grou ...
- 非对称加密算法--DH
注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 11.1.非对称加密算法 特点: 发送方和接收方均有一个密钥对(公钥+私钥),其中公 ...
- Transport Block Size, Throughput and Code rate-----http://www.simpletechpost.com/2012/12/transport-block-size-code-rate-protocol.html
Transport Block Size, Throughput and Code rate Since the size of transport block is not fixed, oft ...
- blade and soul pvp guide
PvP PvP in Blade and Soul is categorized into two types, a personal PvP called Arena and a large-sca ...
- CSS大美集
细节1……………………………………………………………………………… 一.当文字与图片在一行,需要将文字与图片底对齐,可以这样写: <div>记住密码<img src="im ...
- List 集合线程安全测试
最近在做一些代码整理工作,涉及到List 线程安全问题,查了一些资料.网上有些资料说List 增减成员(Add , Remove) 是安全的,但不保证成员属性值访问安全性,及禁止对 List 跨线程遍 ...
- anguar.js tutorial demo
http://docs.angularjs.cn/tutorial angular 入门demo : PhoneCat Tutorial App 别人的DEMO(官方版):http://angular ...
- IP地址及其子网划分
说实话,弄到子网划分的时候还是及其头晕的,又是这又是那的,现在我们来讲解一下这些东西, 首先我们来介绍一下IP地址,要弄清子网划分,子网掩码首先还是要弄清IP地址的划分 IP地址是给Internet上 ...