美文网首页
16-02-接口

16-02-接口

作者: D丝学编程 | 来源:发表于2021-04-09 08:52 被阅读0次

接口:是一种约定,本身不实现任何内容。(usb接口)

接口:

(1)接口不能被实例化。

(2)接口中方法全部是抽象的。

(3)接口的实现类(子类)必须要实现接口中所有的方法。

(4)接口支持多继承(一个儿子多个爸爸)

接口和抽象类的区别:

抽象类 接口
使用abstract关键字 使用interface关键字
可以有普通方法和抽象方法 所有方法都是抽象的
子类通过override实现抽象方法 子类直接实现所有成员

问题:

举例:音乐老师(既是老师,也是音乐家),需要有一种结构,音乐老师继承老师,同时继承音乐家。
语文老师(既是老师,也是文学家),需要有一种结构,语文老师继承老师,同时继承文学家。

解决:

  (1)首先,有老师类,然后有包含音乐家的行为的接口,然后有包含文学家行为的接口

  (2)音乐老师,继承老师,同时继承音乐家的接口

  (3)语文老师,继承老师,同时继承文学家的接口。

接口相关语法示例

//定义一个接口,使用关键字interface
interface ISing 
{
    //唱歌
    void Sing(); //接口中的方法会被隐式的指定为 public abstract。
}
//定义一个歌手类,继承ISing接口
class Singer : ISing
{   
    public void Sing() 
    {
        Console.WriteLine("我在演唱会现场演唱《曾经的你》");
    }   
}
//定义一个学生类,继承ISing接口
class Student : ISing
{
    public void Sing() 
    {
        System.out.println("我在寝室唱歌《分手快乐》");
    }
}

main方法的调用:

Student stu = new Student();
stu.Sing();

Singer singer = new Singer();
singer.Sing();

利用接口实现多继承

假设有4种动物,猫,狗,鸭,猴,我们需要规范其方法,和动物相关的方法有(1)吃东西,(2)游泳,(3)爬树。

此时所有动物都会吃东西,但是猫和猴会爬树,不会游泳;狗和鸭会游泳,不会爬树,所以我们很难找到4种动物共同的父类解决所有的问题,此时可以定义接口来解决此问题。

代码如下:

//定义一个动物类,作为所有动物的父类,提供一个Eat()方法,给所有动物来继承。
class Animal 
{
    public void Eat()
    {
        Console.WriteLine("我在吃东西!");
    }   
}
//定义一个游泳的接口给狗和鸭来继承
interface ISwim 
{
    void Swim();
}
//定义一个爬树的接口给猫和猴来继承
interface IClimbTree 
{
    void ClimbTree();
}
//定义一个猫类继承自动物类和IClimbTree爬树接口
class Cat : Animal,IClimbTree
{
    public void ClimbTree() 
    {
        Console.WriteLine("我用尖锐的爪子在爬树");
    }
}
//定义一个猴类继承自动物类和IClimbTree爬树接口
class Monkey : Animal,IClimbTree
{
    public void ClimbTree() 
    {
        Console.WriteLine("我用我四肢的力量在爬树");
    }
}
//定义一个狗类继承自动物类和ISwim游泳接口
class Dog : Animal,ISwim
{
    public void Swim() 
    {
        Console.WriteLine("我用狗刨式游泳");
    }
}
//定义一个鸭类继承自动物类和ISwim游泳接口
class Duck : Animal,ISwim
{
    public void Swim() 
    {
        Console.WriteLine("我用鸭掌在游泳");
    }
}

main方法调用:

Dog dog = new Dog();
dog.Swim();

Cat cat = new Cat();
cat.ClimbTree();

Duck duck = new Duck();
duck.Swim();

Monkey monkey = new Monkey();
monkey.ClimbTree();

通过main方法的调用语法,我们可以看到,在系统中,只要会爬树的动物,调用爬树方法统一使用ClimbTree()方法,只要会游泳的动物,调用游泳方法统一使用Swim()方法。实现了代码的规范化。

相关文章

  • 16-02-接口

    接口:是一种约定,本身不实现任何内容。(usb接口) 接口: (1)接口不能被实例化。 (2)接口中方法全部是抽象...

  • 接口接口接口

    发现很多朋友对于接口都很纠结,阐述一下个人对接口的理解。 接口分为很多种类型,程序语言内部接口 移动端和服务端接口...

  • Android常用接口

    不知名接口 头条接口: 科技接口: 财经接口: 军事接口: 体育接口: 房产接口: 足球接口: 娱乐接口: 电影接...

  • 第十八天 微信微博天气接口

    分享接口 微信接口 微博接口 天气接口 mob接口

  • 接口测试概述

    接口(interface)的概念 常见接口名词 接口测试: 接口测试目的: 接口测试的重要性: 接口测试流程 接口...

  • 接口测试

    接口测试概念: 接口:接口是为了提供一种服务 所有的接口统称为API,接口分为内部接口和外部接口 外部接口:测试被...

  • 接口

    接口 接口类型 空接口 接口嵌套 接口断言 type关键字

  • 线程池原理

    Callable 接口 Runnable 接口 Future接口 RunnableFuture 接口 Future...

  • JMeter-一个接口的返回值作为输入传给其他接口

    背景: 在用JMeter写接口case,遇到一种情况,接口1查看列表接口,接口2查看详情接口,接口2需要传入接口1...

  • 用户操作接口

    登陆 接口地址 获取列表 接口地址 删除 接口地址 批量删除 接口地址 编辑用户 接口地址 添加用户 接口地址

网友评论

      本文标题:16-02-接口

      本文链接:https://www.haomeiwen.com/subject/guzlxltx.html