精华内容
下载资源
问答
  • OOP 接口

    2018-04-13 13:39:00
    接口定义的实现要点关键词interface ,用来声明一个接口接口也是一个特殊的类。关键词implements,创建一个子类,来实现接口同类的东西,使用extends继承,不同类的东西,使用implements实现例如:子类继...

    接口技术

    为什么需要接口

    PHP只支持单继承,只能从一个父类继承功能;如果想要从多个类继承功能,就需要用接口技术来实现;接口技术也是子类中方法的命名规范。

    接口就是特殊的抽象类。

    接口定义的实现要点

    关键词interface ,用来声明一个接口,接口也是一个特殊的类。

    关键词implements,创建一个子类,来实现接口

    同类的东西,使用extends继承,不同类的东西,使用implements实现

    例如:子类继承父类接口继承接口实现接口

    接口中只有两种元素:类常量、抽象方法。接口中的方法默认都是抽象方法,因此不加abstract

    接口中方法权限必须是public;抽象类中方法可以是protected,也可以是private(尽管私有后不能继承,但可以设置)

    接口中方法可以使成员方法,也可以是静态方法;抽象类中只能是成员方法。

    接口中所有的方法在子类中必须重写

    接口应用

    <?php
    
    //定义小灵通的接口
    interface XiaoLingTong{
    	//打电话
    	public function getTel();
    }
    
    //定义MP3的接口
    interface MP3{
    	//听音乐
    	public function getMusic();
    }
    //定义MP4的接口
    interface MP4 extends MP3{
    	//看电影
    	public function getMovie();
    }
    //定义智能手机类,实现多个接口
    class Mobile implements XiaoLingTong,MP4{
    	//重写getTel
    	public function getTel(){
    		echo '打电话';
    	}
    	//重写getMusic
    	public function getMusic(){
    		echo '听音乐';
    	}
    	//重写getmovie
    	public function getMovie(){
    		echo '看电影';
    	}
    	public function getGame(){
    		echo '打游戏';
    	}
    	public function showInfo(){
    		$this->getTel();
    		$this->getMusic();
    		$this->getMovie();
    		$this->getGame();
    	}
    }
    $mobile = new Mobile;
    $mobile -> showInfo();



    展开全文
  • java oop接口

    2013-10-28 21:06:50
    课程接口总结与继承的使用以及JDBC加载驱动
  • oop接口能不能new对象 This article is for Object-Oriented Programming (OOP) beginners. 本文适用于面向对象的编程(OOP)初学者。 An Interface contains declarations of events, indexers, m...

    oop接口能不能new对象

    This article is for Object-Oriented Programming (OOP) beginners.

    本文适用于面向对象的编程(OOP)初学者。

    An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Interface member. In C# multiple inheritance is achieved with the help of Interfaces.

    接口包含事件,索引器,方法和/或属性的声明。 任何实现接口的类都应为每个接口成员提供具体的实现。 在C#中,借助接口可以实现多重继承。

    Therefore, if the Development Team is large or 3rd-party vendors are involved, then it may possible that two team members may end up creating two different Interfaces with the same method name. Consequently, as a developer you may have to implement both these Interfaces in one Class.

    因此,如果开发团队规模庞大或涉及第三方供应商,则两个团队成员可能最终可能会使用相同的方法名称创建两个不同的接口。 因此,作为开发人员,您可能必须在一个类中同时实现这两个接口。

    Scenario: So let’s assume that –

    场景:所以我们假设-

    You have two different Interfaces let’s say ICustomer and IVendor. Both the Interfaces have a method with same name let's say GetData().

    您有两个不同的接口,比如说ICustomer和IVendor。 两个接口都有一个同名的方法,比方说GetData()。

    GetData() from ICustomer would return the list of customer names while GetData() from IVendor would return the list of vendor names. In the data access layer, a single class CompanyDAL implements both these Interfaces.

    ICustomer的GetData()将返回客户名称列表,而IVendor的GetData()将返回供应商名称列表。 在数据访问层中,单个类CompanyDAL实现这两个接口。

    See attached Code Snippet for Interface definitions –

    有关接口定义,请参见随附的代码段–

    using System.Collections.Generic;
    
    namespace ExplicitInterfacesSite
    {
        // Simple interface for Vendor class
        public interface IVendor
        {
            // Return the list of vendor names
            List<string> GetData();
        }
    
        // Simple interface for customer class
        public interface ICustomer
        {
            // Return the list of  customer names.
            // This function name is conflicting with IVendor's GetData.
            List<string> GetData();
    
            // Another method, which is not conflicti
            string GetCustomerAddress(int customerId);
        }
    }
    

    Solution:

    解:

    While implementing the Interface in a class, we must provide the concrete implementation to each of the Interface member. For non-conflicting Interface members, we can just write the member name and provide the implementation. But for any method which is common in both the Interfaces, the member should be implemented explicitly in the class.

    在类中实现接口时,我们必须为每个接口成员提供具体的实现。 对于不冲突的Interface成员,我们只需编写成员名称并提供实现。 但是对于在两个接口中都通用的任何方法,都应该在类中显式实现该成员。

    By explicit, I mean the method name should be prefixed with <InterfaceName.>. In our case it is like IVendor.GetData () or ICustomer.GetData().

    明确地说,我的意思是方法名称应以<InterfaceName。>为前缀。 在我们的例子中,它类似于IVendor.GetData()或ICustomer.GetData()。

    See Code Snippet –

    请参阅代码段–

    using System.Collections.Generic;
    
    namespace ExplicitInterfacesSite
    {
        public class CompanyDAL : IVendor, ICustomer
        {
            #region IVendor Members
    
            List<string> IVendor.GetData()
            {
                // Implement your logic to get the list of Vendor  Names
                return new List<string>() {"Vendor1", "Vendor2", "Vendor3"};
            }
    
            #endregion
    
            #region ICustomer Members
    
            // This is how we should implement the conflicting method, explicitely 
            List<string> ICustomer.GetData()
            {
                // Implement your logic to get the list of Customer Names
                return new List<string>() {"Customer1", "Customer2"};
            }
    
            // No need of Interface.MethodName as there is no conflict.
            public string GetCustomerAddress(int customerId)
            {
                return "Dummy Customer Address";
            }
    
            #endregion
        }
    }
    

    And when we want to call that method, we need to typecast the class object to the desired Interface.

    当我们要调用该方法时,我们需要将类对象转换为所需的接口。

    I have added an .aspx page in the project to demonstrate this. It just prints the list of vendors and customers.

    我在项目中添加了一个.aspx页面来演示这一点。 它仅打印供应商和客户的列表。

    See the attached Code Snippet –

    请参阅随附的代码段–

    using System;
    using System.Collections.Generic;
    
    namespace ExplicitInterfacesSite
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                // Create the object
                CompanyDAL expliciteObj = new CompanyDAL();
    
                // Can directly call method, whose name is not confliciting
                expliciteObj.GetCustomerAddress(1);
    
                // Cast the object to the interface first and then call  the conflicting method.
                // Here we are calling the GetData() method of IVendor class.
                List<string> lstVendors = (expliciteObj as IVendor).GetData();
                Response.Write("Vendor List:</br>");
                foreach (string vendorName in lstVendors)
                {
                    Response.Write(vendorName);
                    Response.Write("</br>");
                }
    
                // Cast the object to the interface first and then call  the conflicting method.
                // Here we are calling the GetData() method of ICustomer class.
                List<string> lstCustomers = (expliciteObj as ICustomer).GetData();
                Response.Write("Customer List:</br> ");
                foreach (string customerName in lstCustomers)
                {
                    Response.Write(customerName);
                    Response.Write("</br>");
                }
            }
        }
    }
    

    Let's look at the below code line carefully –

    让我们仔细看看下面的代码行–

    List<string> lstVendors = (expliciteObj as IVendor).GetData();
    

    "Vendor1", "Vendor2" and "Vendor3".

    “ Vendor1”,“ Vendor2”和“ Vendor3”。

    The same way in the below code line –

    在下面的代码行中以相同的方式–

    List<string> lstCustomers = (expliciteObj as ICustomer).GetData();
    

    "Customer1" and "Customer2".

    “客户1”和“客户2”。

    Summary: In the above article I tried to explain how to achieve multiple Interface inheritance in C# and how to handle conflicting methods present in more than one Interface. I hope you will enjoy reading this article. Waiting for your feedback.

    简介:在以上文章中,我试图解释了如何在C#中实现多个接口继承以及如何处理多个接口中存在的冲突方法。 我希望您会喜欢阅读本文。 等待您的反馈意见。

    翻译自: https://www.experts-exchange.com/articles/7330/Beginning-OOP-How-to-implement-and-call-Interfaces-with-a-conflicting-method-name-in-same-Class.html

    oop接口能不能new对象

    展开全文
  • javaoop接口

    2020-07-12 16:39:06
    一、接口 接口它的作用是,代表一种能力 为了解决继承单根性的局限。话术:接口可以认为是一种特别的抽象类。.好处是,接口之间可以多继承 1.认识一下接口 2.用程序描述USB接口 3.代码实现 (1).编写接口 (2).实现...

    一、接口

    接口它的作用是,代表一种能力 为了解决继承单根性的局限。话术:接口可以认为是一种特别的抽象类。.好处是,接口之间可以多继承
    1.认识一下接口
    在这里插入图片描述
    2.用程序描述USB接口
    在这里插入图片描述
    3.代码实现
    编写接口
    在这里插入图片描述
    (2).实现接口
    在这里插入图片描述
    (3).使用接口
    在这里插入图片描述
    4.接口的特性
    (1).接口不可以实例化对象,但是可以向上/向下转型
    (2).接口当中所有的属性都是静态常量(定义时必须赋值)
    (3).接口中所有的方法都是抽象方法,但是可以不写abstract
    (4).接口中只有public一种权限,在写其它权限就会报错
    在这里插入图片描述
    (5).一个类可以同时实现多个接口,但是只能继承就一个父类
    (6).接口之间可以继承 A extends B,C 多继承
    在这里插入图片描述
    (7).接口中不可以定义任何构造函数
    (8).一个类实现了某个接口以后,必须对接口中所有的方法进行强制重写,除非这个类是抽象类

    二、抽象类和接口的异同之处

    1.相同点
    1.都可以被继承
    2.都不能被实例化
    3.都不能被创建对象
    4.都可以实现程序的多态性
    2.不同点
    1.接口只有定义,其方法不能在接口中实现,只有实现接口的类才能实现接口中定义的方法,
    而抽象类可以有定义与实现,即其方法可以在抽象类中被实现。
    2.接口不能定义静态方法,抽象类可以,
    3.接口中的数据成员只能是常量,抽象类可以定义非抽象方法,而接口中所有的方法都是抽象的
    4.接口可以被多重实现,抽象类只能被单一继承

    展开全文
  • javaoop 接口

    2020-07-12 16:08:04
    一、接口的概念 接口是抽象的抽象,也可以认为接口是一种特别的抽象类 接口是功能的集合,它只描述功能所具备的方法,如何实现这些方法由实现类(子类)通过方法重写来完成。 二、 接口的定义和实现格式 1 定义格式 ...

    一、接口的概念

    • 接口是抽象的抽象,也可以认为接口是一种特别的抽象类
    • 接口是功能的集合,它只描述功能所具备的方法,如何实现这些方法由实现类(子类)通过方法重写来完成。

    二、接口的作用是什么?

    • 代表一种能力 为了解决继承的单根性的局限
    • 接口可以认为是一种特别的抽象类

    三、接口的定义和实现格式

    • 定义格式

    • 要定义一个接口使用interface关键字完成。

    interface 接口名{
    	int i=3;//静态常量 默认是 public static final
        // 抽象方法
        public void print(); //接口抽象方法可以不写abstract
        }

    2.实现格式

    class 类名 implements 接口名{
    
                // 重写抽象方法
    
    }

    四、接口的实际应用——标准定义

    电脑上可以使用U盘、Mp3、打印机,这些设备都是连接到USB设备上的。
    在这里插入图片描述
    所有的代码如果要进行开发,一定要首先开发出USB接口标准,因为有了标准后,电脑才可以去使用这些标准,设备厂商才可以设计USB设备。

    定义USB在这里插入图片描述
    定义打印机
    在这里插入图片描述
    定义U盘
    在这里插入图片描述
    定义电脑
    在这里插入图片描述

    • 不管以后会有多少个设备,只要它是USB标准的实现子类,就都可以在电脑上使用

    在这里插入图片描述

    • 此时可以很好的描述出现实的关系。
    • 在现实的生活之中,标准的概念随处可见,而在程序里面标准就是用接口来定义的。

    五、 接口的特点和注意事项

    1 接口特点

    • 接口不可以实例化,能向上或向下转型
    • 接口定义的都是静态常量
    • 接口中的抽象方法有默认的修饰符:public abstract

    • 2 注意事项
    • 接口可以继承接口,而且可以多继承。
    • 一个类在继承一个类的同时可以实现多个接口,多个接口名之间使用逗号分隔
    • 一个实现类实现接口时需要重写接口接口所有抽象方法,否则该类必须定义为抽象类。
    展开全文
  • public interface A{ public static final int sss=1; //全局常量 public abstract void print(); //抽象方法 ... //因为接口里只有一种权限而且必须是抽象方法所以public和abstract关键词可以省略 }
  • package com.dao; public interface Myinter extends A,B{}
  • Chrome 59附带了无头Chrome。这是在无头环境中运行Chrome浏览器的一种方式。 本质上,没有Chrome即可运行Chrome! 它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行。 PHPHeadlessChrome提供了一...
  • javaoop-接口

    2020-06-15 18:29:32
    javaoop-接口 首先,我们来举一个例子: 现在我要实现下列要求:要求实现保险箱的功能。箱子有开和关的功能,锁有上锁和开锁的功能。 我们分析这个要求时会发现,保险箱是一个箱子,它有一把锁,可以将箱子和锁分别...
  • oop接口

    2020-04-22 09:19:48
    接口: 是一种引用数据类型 由interface定义 只能包含常量和抽象方法 接口不能被实例化 接口是需要被实现(implements)/继承(extends)的,实现(implements)时的派生类需重写所有抽象方法 一个类可以实现多接口...
  • oop interface接口

    2016-09-17 16:53:14
    header('content-type:text/html;charset=utf-8'); //接口 interface databases{  public function select($name); ... public function add();...//接口继承接口 interface database extends databases{  pub
  • 修饰符 SubClass extends SuperClass { //类定义部分 }
  • 学习php oop的小demo 可以用来参考~~接口和继承的使用
  • PHP中OOP的多态特性主要依靠接口技术来实现,所以掌握好接口技术!
  • java-oop-接口

    2018-08-06 18:28:50
    接口:  从多个不相关的类型中设计出一个子类,达到多继承的目的  接口的特点:  (1)使用interface关键字修饰(可以理解为:接口是特殊的抽象类)  (2)只能有抽象方法和常量  (3)不能实例化  (4)不能提供构造器 ...
  • OOP接口好处非常多

    2009-07-01 08:50:00
    OOP接口好处非常多, 一方面通过接口可以定义一种契约、协定关系,实现盖接口的类就必须实现这些协定,同时也对外界提供了具体类调用的统一接口,Petshop3/4数据访问层使用抽象工厂模式实现多数据库支持里面利用时...
  • class 类名称 extends 父类名称 implements 接口名称{ 属性; 方法; }
  • JavaOOp04 第四章 接口.pdf,JavaOOp04 第四章 接口.pdf JavaOOp04 第四章 接口.pdf,JavaOOp04 第四章 接口.pdf
  • OOP面向对象只接口

    2011-06-07 21:59:10
    详细介绍接口的用途,用法,以及优势,在实际的项目开发中,用到的接口比较广泛,该例题详细介绍了接口的实用性!!
  • //创建接口 interface Inter2{ //1、接口里可以有构造方法吗? --- 不能!! // public Inter2() {} }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,486
精华内容 24,994
关键字:

oop接口