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.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
随机推荐
- CentOS 7 配置静态IP
1.查看MAC地址 2.修改/etc/sysconfig/network-scripts/ifcfg-[第一步中红框内的文字] 3.添加和修改内容如下: 4.修改/etc/resolv.conf 5. ...
- javascript之原型模式学习
1.创建的每个函数都有一个prototype(原型)属性.这个属性是一个指针,指向一个对象.而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法. 字面意思是prototype就是通过调用构 ...
- jquery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
想要添加这个效果,先来弄明白页面的加载和事件执行顺序,看这个简单例子: <html xmlns="http://www.w3.org/1999/xhtml"> < ...
- mysql分表技术(学习心得)
(最近在学习mysql优化的一些问题,以下为个人一些收获,如有不足,敬请提出!) 概述:当一个表的数据很大,比如200G,这时太大,我们只靠索引也不好使了,这时我们需要分表和分区处理.分表有两种形式( ...
- 基于注解的Spring AOP示例
基于注解的Spring AOP示例 目录 在XML配置文件中开启 @AspectJ 支持 声明切面及切入点 声明通知 测试 结语 在XML配置文件中开启 @AspectJ 支持 要使用Spring的A ...
- 【转】Swift之 ? 和 !
原文地址:http://joeyio.com/ios/2014/06/04/swift---/ Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会 ...
- oc--UINavigationController控制器
UINavigationController导航控制器 UINavigationController导航控制器,是多个界面间跳转的重要元素,可以理解为它存储着多个viewController,它的存储 ...
- MicroERP软件更新记录1.1
MicroERP软件更新记录 最新版本:1.1 1.增加固定资产检修.租赁.转移记录 2.增加产品质检单 3.增加零售单(收银台) 4.支持各种主流关系型数据库 5.完善了数据字典,如加入原材料材质. ...
- 【初级】linux mv 命令详解及使用方法实战
mv:移动文件或者将文件改名 前言: mv是move的缩写,顾名思义是移动.它的功能既能移动文件/文件夹,又可以用来改名,经常用来做文件的备份,比如再删除之前,先给文件做备份(保护数据)也是linux ...
- 5.String
一.古罗马皇帝凯撒在打仗时曾经使用过一种方法加密军事情报.请编写一个程序,使用上述算法加密或解密用户输入的英文字串. 设计思想:先提示用户进行的操作是加密还是解密,用户输入一个字符串,加密时将前23个 ...