精华内容
下载资源
问答
  • 定义一个接口用来实现两个对象的比较。 interface CompareObject{  public int compareTo(Object o); //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小  } 定义一个Circle类。 定义一个...

    定义一个接口用来实现两个对象的比较。
    interface CompareObject{
        public int compareTo(Object o);   //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小
     }
    定义一个Circle类。
    定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。在ComparableCircle类中给出接口中方法compareTo的实现体,用来比较两个圆的半径大小。
    定义一个测试类TestInterface,创建两个ComparableCircle对象,调用compareTo方法比较两个类的半径大小。
    思考:参照上述做法定义矩形类Rectangle和ComparableRectangle类,在ComparableRectangle类中给出compareTo方法的实现,比较两个矩形的面积大小。
     

    package com.xatu.接口;
    
    public interface CompareObject {
    
    	public int compareTo(Object o);
    
    	class Circle {
    		private double radius;
    
    		public Circle(double radius) {
    			this.radius = radius;
    		}
    
    		public double getRadius() {
    			return radius;
    		}
    
    		public void setRadius(double radius) {
    			this.radius = radius;
    		}
    
    		@Override
    		public String toString() {
    			return "半径" + radius;
    		}
    
    	}
    
    	class ComparableCircle extends Circle implements CompareObject {
    
    		public ComparableCircle(double radius) {
    			super(radius);
    		}
    
    		@Override
    		public int compareTo(Object o) {
    			if (o instanceof Circle) {// 如果不进行预判出现ClassCastException
    				if (this.getRadius() == ((Circle) o).getRadius()) {
    					return 0;
    				} else if (this.getRadius() < ((Circle) o).getRadius()) {
    					return -1;
    				} else {
    					return 1;
    				}
    
    			}
    			return 2;
    
    		}
    	}
    
    class TestInterface {
    		public static void main(String[] args) {
    			CompareObject c1 = new ComparableCircle(10);// 可以使用多态和本态,优先使用多态(站高望远)
    			CompareObject c2 = new ComparableCircle(10);
    			int compRs = c1.compareTo(c2);
    			System.out.println(compRs);
    			switch (compRs) {
    			case 0:
    				System.out.println("相等");
    				break;
    			case 1:
    				System.out.println("右边大");
    				break;
    			case -1:
    				System.out.println("左边大");
    				break;
    
    			default:
    				break;
    			}
    
    		}
    	}
    
    }
    

     

    展开全文
  • 定义一个接口,并定义相应的类来实现实现接口中的方法 */ public interface Circle {//定义接口 double PI = 3.1415;// 定义常量 void setRadius(double radius);// 定义抽象方法 double area();// 定义抽象...
    package interfacedemo;
    
    /**
    	定义一个接口,并定义相应的类来实现实现接口中的方法
     */
    public interface Circle {//定义接口
    
    	double PI = 3.1415;// 定义常量
    
    	void setRadius(double radius);// 定义抽象方法
    
    	double area();// 定义抽象方法
    
    }
    package interfacedemo;
    
    public class CircleImpl implements Circle {
    
    	double radius;// 定义成员变量
    
    	public void setRadius(double radius) {// 实现接口的setRadius方法
    		this.radius = radius;
    	}
    
    	public double area() {// 实现接口中的方法
    		return (radius * radius * PI);
    	}
    
    }

    package interfacedemo;
    
    public class CircleTest {
    	public static void main(String[] args) {
    		CircleImpl ci = new CircleImpl();// 创建类对象
    		ci.setRadius(2);// 设置半径
    		System.out.println("圆的面积:" + ci.area());
    	}
    
    }
    /*java 不支持多继承,如果希望一个类能同时继承两个以上的父类
     *可以使用接口(interface)来实现多继承的效果
     *接口是一种纯粹的 抽象类,只 包含了抽象方法和常量的定义
     *抽象方法必须由其子类来实现implement,才能赋予新的功能
     *子类实现接口,使用implement关键字,可以实现多个接口,接口名之间用逗号隔空
     *
     *
     *接口与抽象类的区别:
     *1.接口是纯粹的抽象类,接口中所有 的方法都是抽象的(只有声明,没有定义),而抽象类允许包含有定义的方法
     *2.子类实现  接口用implement, 继承  抽象类用extends关键字
     *3.子类可以  实现 多个接口,但只能继承一个抽象类
     *4.一个子类如果实现了一个接口,就必须重写这个接口里所有的方法;
     *	抽象类的子类可以不重写抽象父类里的所有方法,但这个子类会自然成为抽象类
     */


    展开全文
  • C++:如何正确的定义一个接口

    万次阅读 多人点赞 2018-06-18 15:54:38
    C++中如何定义接口类?C++中如何定义标识接口类?

    欢迎转载,转载请注明原文地址:https://blog.csdn.net/netyeaxi/article/details/80724557

     

    C++中如何定义接口类?

    首先给接口类下了定义:接口类应该是只提供方法声明,而自身不提供方法定义的抽象类。接口类自身不能实例化,接口类的方法定义/实现只能由接口类的子类来完成。

    而对于C++,其接口类一般具有以下特征:

    1.最好不要有成员变量,但可以有静态常量(static const或enum)
    2.要有纯虚接口方法
    3.要有虚析构函数,并提供默认实现
    4.不要声明构造函数

    如下就是一个最简单的例子:

    class Testable
    {
    public:
        static const int START = 1;  // #1
        static const int STOP = 2;
    
        virtual void test() = 0;  // #2: 接口方法
    
        virtual ~Testable() {};   // #3: 从C++11开始可以: virtual ~Testable() = default;
    }

    #1.

    如果成员变量,尤其是可变的成员变量,定义在接口中,等于是把实现细节暴露出来了,不符合接口定义的要求,所以一般不在接口中定义可变的成员变量。
    而常量可以定义在接口中,因为有时接口需要返回状态,而这些状态可以定义成常量放在接口中。

    #2.

    由于不能让接口类自身能够实例化,并且需要子类必须实现接口暴露的方法,所以接口方法都要声明成纯虚函数。
    声明成纯虚函数意味着接口类自身不需要提供方法的定义,方法的定义需要由接口类的子类提供,并且接口类自身也因此变成了抽象类而不能被实例化。

    #3.

    a). 在使用接口类的指针访问接口类的子类的实例时,当对接口类的指针做delete时,如果接口类的析构函数不是虚析构函数的话,将只会调用接口类的析构函数,接口类的子类的析构函数将不会被调用,内存泄露将会产生,所以接口类的析构函数必须定义成虚析构函数。
    b). 如果接口类的析构函数不提供默认实现,即如果接口类的析构函数是纯虚析构函数的话,接口类的子类将被迫必须提供析构函数的实现,这样对接口类的子类不友好。
    c). 在C++11中也可以用:  virtual ~Testable() = default; 替代 virtual ~Testable() {};

    #4.

    不要显式定义任何的构造函数,但也不要在接口中加入如下代码来禁止生成构造函数:

    	Testable() = delete;
    	Testable(const Testable&) = delete;

    因为C++的调用机制要求子类的构造函数调用时一定会先调用父类的构造函数,如果禁止生成构造函数,代码编译时会报错。如果程序员不显式的提供构造函数,编译器也会隐式的加上构造函数的,虽然这些构造函数对于接口类来说实际没有什么意义。

    C++中如何定义标识接口(marker interface)类?

    标识接口是没有任何方法和属性的接口。这种接口在java中出现的较多,比如:java.io.Serializable、java.rmi.Remote、java.util.EventListener、java.util.RandomAccess

    实现代码如下:

    class Testable {
    public:
        virtual ~Testable() = 0 {}; // #5
    };

    #5.

    只要对纯虚析构函数提供一个默认实现就可以了。这种对纯虚函数提供实现的写法看似很奇怪,但C++的确是支持的。

     

    以上是定义C++接口类的一些重要事项,如果有错误或遗漏,请指正。

    另外,对于如何正确的使用接口类,请参看下一篇文章“C++:如何正确的使用接口类”。

    展开全文
  • 创建一个接口定义一个方法) A类继承接口,实现其方法,并新增虚方法 B类继承A类,实现接口,并重写A类的方法 实现代码: using System; using System.Collections.Generic; using System.Linq; using System...

    创建一个接口(定义一个方法)

    A类继承接口,实现其方法,并新增虚方法

    B类继承A类,实现接口,并重写A类的方法

    实现代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace day02
    {
        /// <summary>
        /// 创建一个父接口(定义一个方法)
        /// </summary>
        interface IParentInterface
        {
            void ParentMethod();
        }
        /// <summary>
        /// 继承父接口,实现其方法,并新增虚方法
        /// </summary>
        class IMyInterface : IParentInterface
        {
            public void ParentMethod()
            {
                Console.WriteLine("ParentMethod() called");
            }
    
            public virtual void VirtualMethod()
            {
                Console.WriteLine("VirtualMethod() called");
            }
        }
        /// <summary>
        /// 继承A类,实现接口,并重写A类的方法
        /// </summary>
        class InterfaceImpl : IMyInterface,IParentInterface
        {
            public new void ParentMethod()
            {
                base.ParentMethod();
                Console.WriteLine("ParentMethod() overrid");
            }
    
            public override void VirtualMethod()
            {
                base.VirtualMethod();
                Console.WriteLine("VirtualMethod() override");
            }
    
            /*static void Main(string[] args)
            {
                InterfaceImpl interfaceImpl = new InterfaceImpl();
                interfaceImpl.ParentMethod();
                interfaceImpl.VirtualMethod();
                Console.ReadKey();
            }*/
        }
    }
    

    运行结果:

    展开全文
  • “不如直接就在这个类中写实现方法岂不是更便捷”,你怎么保证这个接口一个类去实现呢?如果多个类去实现同一个接口,程序怎么知道他们是有关联的呢? 既然不是一个类去实现,那就是有很多地方有用到,大家需要...
  • 1、使用类与接口的知识完成如下要求:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly()方法,...
  •  * 定义一个接口接口中有 3 个抽象方法如下。 (1)“long fact(int m);”方法的功能为求参数的阶乘。 (2)“long intPower(int m,int n);”方法的功能为求参数 m 的 n 次方。 (3)“boolean findFactor(int...
  • 定义接口

    千次阅读 2017-11-21 20:35:51
    7-3 定义接口(30 分) 本题目要求定义一个ClassName接口,接口中只有一个抽象方法getClassName();设计一个类Company。该类实现接口ClassName中的方法getClassName()。功能是获取该类的名称。 输入...
  • 定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法calculateArea(), 分别计算圆和矩形的面积 /* 定义一个接口Area,其中包含一个计算...
  • 定义一个类实现Serializable接口

    千次阅读 2016-09-03 19:01:52
    一、序列化简介 序列化是Java中的一个非常重要的...如果想让一个类可被序列化,那么这个类必须实现Serializable接口,这个接口本身没有任何方法和属性,它的作用只是为了标示一个类可以被序列化,这一个特性好像在J
  • 定义和实现接口

    千次阅读 2017-09-25 20:10:09
    接口在继承中我们讲到了接口,那么如何去...语法规则定义接口(飞翔) public interface IFly{ public void Fly(); }实现接口 public class Type1Enemy:IFlyHandler{}如果有同时继承多接口,那么就用逗号隔开接口名。
  • * 定义一个接口ArearInterface,其中包含一个方法,计算面积 * 定义三个类:三角形、矩形、圆形,分别实现ArearInterface中的方法 * 定义一个主类,将三角形和圆形的面积显示在屏幕上
  • Map接口常用方法 定义一个Map,存放学生信息  姓名:小胡  性别:男  年龄:13 输出Map的大小 输出该学生的年龄 该学生信息集合里,是否存在"爱好"信息。
  • (1)、定义一个接口IAssaultable(可攻击的),该接口一个抽象方法attack()。 (2)、定义一个接口IMobile(可移动的),该接口一个抽象方法move()。 (3)、定义一个抽象类Weapon,实现IAssaultable接口和...
  • package lianxi; public interface jiekou { public static final double PI = 3.1415926; public double area(); } package lianxi;...public class shixian implements jiekou { ... public s...
  • 定义一个接口叫ImobilStorage。 然后,在computer类中如 ``` public class Computer{ private ImobilStorage usbDrive; } ``` 想问下为什么接口名可以定义一个变量?
  • Jlink 接口定义

    万次阅读 2018-06-15 10:19:48
    接口定义 引脚定义
  • JTAG接口定义与其他简介

    万次阅读 多人点赞 2019-01-12 19:59:24
    JTAG(Joint Test Action Group)是一个接口,为了这个接口成立了一个小组叫JTAG小组,它成立于1985年,比推丸菌的年龄还大。在1990年IEEE觉得一切妥当,于是发布了 IEEE Standard 1149.1-1990,并命名为 Standard ...
  • mini usb 接口定义 5针usb接口定义

    万次阅读 2017-05-10 11:36:26
    mini usb的接口定义如下: 1:VCC 2:D- 3:D+ 4:id 5:GND 其中id脚在otg功能中才使用。由于mini usb接口分mini-A、B和AB接口。 如果你的系统仅仅是用做slave,那么就使用B接口,在A接口中,ID脚悬空.如果是B接口...
  • 接口字段定义

    千次阅读 2016-12-08 17:20:13
    HTTP 接口字段定义格式
  • /** * @author Administrator ...接口就是一个特殊的抽象类, * 意味着接口中的方法都是抽象方法。 */ /* * 接口定义的格式: interface 接口名(接口内容) * */ interface Inter{ /* *...
  • //接口Area interface Area { public abstract double calculateArea(); } //MyCircle类 class MyCircle implements Area{ double radius; public MyCircle() { super(); } public MyCircle(double radius) {...
  • C#中定义和实现接口

    千次阅读 2018-04-09 19:58:56
    定义一个接口在语法上与定义一个抽象类完全相同,但是不允许提供接口中任何成员的实现方式,也即只能含有方法的签名,不能有方法的实现。一般情况下,接口只包含方法、属性、索引器和事件的声明。 接口中不能有构造...
  • 在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的...一旦接口定义,任何类成员可以实现一个接口。而且,一个类可以实现多个接口。 要实现
  • (1)接口定义前默认修饰符为public。 (2)接口中变量默认修饰符为public static final。 (3)接口中方法默认的访问权限为public。 实例 public interface Runer {//接口定义接口里只包含常量和抽象方法 String ...
  • 树莓派接口定义

    千次阅读 2019-02-28 22:51:13
    树莓派接口定义GPIODSI显示端口CSI摄像头接口MicroSD插槽HDMI / USB / Network接口Micro USB 电源接口 / 3.5mm音频输出接口 GPIO GPIO(通用输入/输出接口)是树莓派重要的功能接口,它相当于Arduino上的GPIO引脚。...
  • sata接口定义及电源接口定义

    千次阅读 2011-02-21 15:15:00
    http://www.szzhzx.com/bencandy.php?fid=40&id=395<br /> 
  • SATA接口定义

    万次阅读 2018-08-29 16:18:31
    SATA数据接口(7针)电源接口(15针)定义详解 SATA是Serial ATA(Serial Advanced Technology Attachment)亦称串行ATA,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。...
  • [ JAVA ] 多泛型对象接口定义

    千次阅读 2018-02-27 16:18:31
    有些时候我们在定义一个类去实现泛型接口时,我们并不确定这个类将要实现哪种类型的类,这时我们就不能确定接口中的泛型,那么接口中的泛型尚未确认,这时就要求这个类也必须定义泛型,而且泛型名称要一致。...
  • 接口定义接口的成员

    千次阅读 2018-02-08 21:21:59
    Java中的接口:多个抽象类的抽象就是接口在Java中最小的程序单元就是类,接口其实是一个特殊的类Java中的接口表示规范,用于定义一组抽象方法,表示某一类食物必须具备的功能,要求实现类必须来实现该接口并提供方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,244,569
精华内容 897,827
关键字:

怎么定义一个接口