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.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
随机推荐
- svn: Can't convert string from 'UTF-8' to native encoding 的解决办法(转)
http://www.cnblogs.com/xuxm2007/archive/2010/10/26/1861223.html svn 版本库中有文件是以中文字符命名的,在 Linux 下 check ...
- Python:dict用法
dict全称dictionary,使用键-值(key-value)存储,有极快的查找速度. 以下整理几种常用的dict用法 定义 空dict >>> dict={} 普通dict & ...
- 时间控件之赋值问题:datetimebox
1.datetimebox不显示毫秒数: <input class="easyui-datetimebox" name="birthday" data-o ...
- NoSQL生态系统——hash分片和范围分片两种分片
13.4 横向扩展带来性能提升 很多NoSQL系统都是基于键值模型的,因此其查询条件也基本上是基于键值的查询,基本不会有对整个数据进行查询的时候.由于基本上所有的查询操作都是基本键值形式的,因此分片通 ...
- 雅美尓(yaml)实战
献给跟我一样对yaml(雅美尓)有婶婶挫败感的同学! 开始第一个pylon工程,我们就跟yaml配置文件开始了不解之缘.yaml是什么?它有哪些规则? 大IBM的文章如是说:YAML 是一种比 XML ...
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- 【思路】-分页-双top分页算法的原理
描述:实现分页的一种算法 大致过程:访客访问不同的分页,为这个当前页生成动态的查询SQL,然后送到数据库中执行 输入:总条数,每页多少条,第几页,查询的SQL,排序的字段 注意:传入的排序字段需要构成 ...
- C# 图片的裁剪,两个图片合成一个图片
图片的裁剪,两个图片合成一个图片(这是从网上摘的) /// <summary> /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_ne ...
- 列王的纷争,COK,675区,有去的没有?加群:159108918,盟的名字准备叫:大话西游
首先我承认我玩物丧志了 679区,有去的没有?加群: 474574809,盟的名字叫:Moon Box 如何练最强5级号,为新区做准备?! 粮食是可以为0的,士兵不会死,这是关键之一. 关键之二是新手 ...
- keep the bar green to keep the code clean——Junit详解(一)
测试用例 单元测试时每个开发人员必需掌握的,是保证开发过程中代码的准确性,无误性,保证代码质量.敏捷开发模式是先根据用户需求写测试用例,考虑基本所有用户所需要的情况,再写实现方法.单元测试有很多种,当 ...