面向对象之接口

【访问修饰符】 interface 接口名{}

1、接口完全是定义了一些约定,用来被实现的,所有成员默认是public

2、接口只有方法、属性、索引或事件的声明,没有实现体;

3、可以弥补类的【单一继承】性

4、子类实现接口成员,与抽象类相比,不用使用override重写关键字

    public interface IRunable
    {
        void Run();
    }
    public class Dog:IRunable
    {
        public void Run()
        {
            throw new NotImplementedException();
        }
    }

5、显示实现接口成员,调用此实现的接口成员时必须通过接口类型的变量来调用,通过实现类变量的调用不能通过编译

    public class Dog:IRunable
    {
        void  IRunable.Run()
        {
            Console.WriteLine("run");
        }
    }

             //调用
            IRunable ondog = new Dog();
            ondog.Run();//编译正确

            Dog ondog = new Dog();
            ondog.Run();//编译错误

  

时间: 2024-12-11 17:45:28

面向对象之接口的相关文章

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

Java面向对象程序设计--接口和内部类

1.接口的定义: In the Java programming language, an interface is not a class but a set of requirements for classes that want to conform the interface. 说明: 1) Interface 不是class,虽然interface具有class的一些特点,例如能够继承,能够定义相同类型的变量,而且和C++的abstract class非常像,但Java 的inter

php学习笔记 面向对象中[接口]与[多态性]的应用

代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽象方法(不

Python全栈之路系列----之-----面向对象4接口与抽象,多继承与多态)

接口类与抽像类 在python中,并没有接口类这种东西,即便不通过专门的模块定义接口,我们也应该有一些基本的概念 编程思想 归一化设计: 1.接口类 不实现具体的方法,并且可以多继承 2.抽象类 可以做一些基础实现,并且不推荐多继承 编程的几类原则: 开放封闭原则:对扩展示开放的,对修改是封闭的依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该应该依赖细节:细节应该依赖抽象.换言之,要针对接口编程,而不是针对实现编程接口隔离原则:使用多个专门的接口,而不使用单一的总接口.

PHP面向对象之接口

接口(interface)技术 什么是接口? 先看抽象类: abstract  class  类名  { 属性1: 属性2: ..... 非抽象方法1: 非抽象方法2: ...... 抽象方法1: 抽象方法2: ...... } 设想,将上述抽象类中"实在的成员",删除,即删除那些非抽象的成员.则,自然该抽象类中,就只有抽象方法: abstract  class  类名  { 抽象方法1: 抽象方法2: ...... } 由此,可以理解为:这个抽象类,"太抽象了",

面向对象、接口、服务编程

面向对象: 多态.继承.封装(对象的三个重要特征) 面向接口: 1.定义和实现分开(单一函数过程声明的封装) 2.模块封装,导出实现不可见(dll导出类,以接口形式导出,使不同对象的关联并在内部实现的类型上保持一致,方便相互调用) 3.不同对象的相同类型关联(C++多态侧重于参数对象的识别) 4.java可动态生成类 面向服务: SOA等架构协议交互(进程交互中的一种方式) 面向组件: 脚本交互(java和android可以理解为,状态复杂的key-value键值对形式的状态机,通过脚本输入调整

[面向对象杂谈]接口与多态

人总是很忙的,但是一个人就是一个人,不存在分身术. 假设有个人王大柱,他是光明中学的校长,还是光明村的村委会成员,同时还是他儿子的父亲. 那么我们可以这么想:王大柱是一个类的具体的实现对象,这类名叫"王大柱类",而王大柱类实现了三个接口:"I光明中学校长"."I光明村村委会成员"."I父亲". 画图如下: 那么我们可以称这三个接口为这个类的三个"身份". 我们可以这样制造一个王大柱出来: 王大柱类 王大柱

面向对象高级——接口的基本概念和对象的多态性

接口 需要掌握接口的定义格式及使用 掌握接口与抽象类的关系 具体内容: 接口是Java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成. 如果一个类中完全是由全局常量(static final声明)和抽象方法组成,就可以将其定义成一个接口. 接口的定义格式: interface 接口名称{    全局常量:    抽象方法: }   interface A{ // 定义接口A public static final String AUTHOR = "刘勋&q

【设计模式】面向对象小结——接口、泛型和委托

上一篇文章,通过一张概括性导图,总结性的讲解了一下我对面向对象的理解,以及重写与重载的区别. 这篇文章的主要内容是写,我对面向对象功能:接口.泛型和委托的理解..很多人都认为,我不使用它们,照样能实现程序想要的功能,为什么还要用它们?可以这么说,如果要想混IT行业,那么,我们就要成为专业人员.那么,我们所写的代码就不仅仅是实现其功能那么简单了,我们还要提高程序的性能,更重要的是,我们所写的代码是给别人看的,要让别人看得懂,实现团队合作..接口.泛型和委托让我们的代码更结构化.专业化..    

《java入门第一季》之面向对象(接口收尾)

通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: 姓名,年龄 吃饭();//吃的不一样,定义为抽象方法 睡觉(){} 猫:继承自动物 狗:继承自动物 跳高的额外功能是一个新的扩展功能,所以我们要定义一个接口 接口: 跳高 部分猫:实现跳高 部分狗:实现跳高 实现: 从抽象到具体,这个具体意思是实现后都是具体内容 使用: 使用具体类 */ //定义跳