合众百科 > 百科 > 接口有构造方法吗,接口有构造函数吗

接口有构造方法吗,接口有构造函数吗

2024-10-23 05:32:31百科

今天合众百科就给我们广大朋友来聊聊接口有构造方法吗,以下关于观点希望能帮助到您找到想要的答案。

php抽象类和接口的区别

php抽象类和接口的区别

最佳答案区别:

1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。

2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)

3、接口没有构造函数,抽象类可以有构造函数。

4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。

5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。

抽象类还是接口。

如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。

如果必须从多个来源继承行为,就使用接口。

如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。

请描述C#中接口的特点有哪些

最佳答案接口是引用类型的,类似于类,和抽象类的相似之处有三点:

1、不能实例化;

2、包含未实现的方法声明;

3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);

另外,接口有如下特性:

接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。

接口为什么不能有构造函数

最佳答案以举例的方式说到如何区分抽象类和接口,这里我们从Java语法谈起,使我们更加了解这两者的内在区别。它们的语法区别:1)接口不能有构造方法,抽象类可以有。2)接口不能有方法体,抽象类可以有。3)接口不能有静态方法,抽象类可以有。4)在接口中凡是变量必须是public static final,而在抽象类中没有要求。

忽然有此一文,是因为同学疑惑道:抽象类居然还有构造方法,又不能直接用来new。我的解释是平时在抽象类中对于构造方法的存在,没有什么印象,是因为IDE默认为你生成了一个无参构造方法,也可以显式地写出构造方法,这个构造方法,是用来被子类调用的,因为任何子类都必须调用从Object开始的所有父亲的构造方法,才算完成初始化工作。那么我引申一下,问他们,接口有构造方法吗?他们的理解,抽象可以有,为什么接口不可以有?!那么在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors。这又何解?

从语法的角度来说,抽象类必须有构造方法,而接口严禁有构造方法,这本身也说明了它们性质的不同。抽象类是一个类,别的类是用关键字 extends 来继承下来,并扩展的,有非常强的is-a的关系,这种关系一般来说符合里氏代换原则。而接口,是被其他类用关键字 implements 来实现接口定义的方法的。如果没什么区别,何必整出两个不同的关键字。 接口只是定义功能和行为规范,如果一个类实现了一个接口,那么这个类必须遵守这个接口的方法约定,但没有is-a的关系。把墙壁上的“小学生行为规范”想象成一个接口,那么是小学生必须遵守这个约定,但小学生不是“行为规范”。

构造方法是用来在对象初始化前对对象进行一些预处理的,提供了实例化一个具体东西的入口。接口只是声明而已,不一定要进行什么初始化,就算要进行初始化,也可以到实现接口的那一些类里面去初始化。接口只是用来表述动作,表述规范来的,可以new一台computer,但我们无法new一个IDE、SATA、PCI、PS-2。因此,接口要构造方法何用?接口是一种规范,被调用时,主要关注的是里边的方法,而方法是不需要初始化的,类可以实现多个接口,若多个接口都有自己的构造器,则不好决定构造器的调用次序,构造器是属于类自己的,不能继承,因为是纯虚的,接口不需要构造方法。而抽象类是具体类的祖先,即使是石器时代,也总要干些初始化的工作,抽象类虽然是不能直接实例化,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都,都会调用父类的构造方法,初始化一个类,先初始化父类,有没有说初始化接口。

再拿汽车的例子来说明两者的区别,Car, Track, Van 是 Vehicle 抽象类的子类,那么你可以说小娇车是车子,拖拉机是车子,货车是车子。而做为他们共同的父类,会做一些初始化工作,如加汽油、机油、冷却液。另外所有车子具有共同属性,轮子,方向盘,油门等。Brake 是一个刹车动作接口,这个规范要求车子实现了它,必须有能力把减到零,只是实现途径不一样,或者是鼓刹,或者是碟刹。或者是效果不一样,有的刹车灵一点,有的刹车差一点。

在抽象类和接口均可以被考虑的地方,接口首先是被提倡使用的,在语法上没有is-a的关系,使用起来更加灵活,另外可以多实现毕竟是一种难得的资源。而抽象类当存在大家共同的实现方法,或者有很多属性操作时,才是首选,当考虑使用抽象类时,在可预见的未来,它要体现出被继承时非常强烈的is-a关系。

接口不能有方法体,就是强制接口定义者不能给接口增加一些详细的实现,指定的必须是纯虚的接口,对于架构者来说,它需要做的就是定义一个可以理解的接口名,参数列表,以及返回类型。而抽象类是可以有自己的实现方法,这个方法可以被用来被执行。有时候,我们会误以为抽象类中的方法不能用super显示调用,因为super是指代父类对象,而抽象类MS不能有对象。但事实上可以,任何子类实际的对象,都可以理解成父类的对象。

接口的所有方法都是抽象的,而抽象方法是没有static,有static的方法是不能override的,不能实现多态,所以这样定义接口才有意义,接口中定义的方法目的很明确:就是给实现类去实现,如果你在接口中将方法声明为静态的(与具体的实例无关),但接口中的方法又要求必须被实现类去实现(可能会有多个实现类),这岂不是自相矛盾!如果硬要加上static上去,编译器会友好提示:Illegal modifier for the interface method FF.f(); only public & abstract are permitted。说到底,不能再加任何除public 和 abstract 的任何修饰符了,如:private, protected, final, static.

数据成员没有多态的概念,只有可不可以被访问的说法,如果是公有的数据成员是在任何地方都可以被访问和修改的,那么接口定义的数据成员如果是私有的,又何必定义,因为它没有方法,就是说没有任何方法对这个数据成员可以操作。如果是公有的,谁都可以修改,那么,多重实现多个接口,这个数据不是改得乱了套?所以接口一般不允许有数据成员,但如果真的有,明确默认即为public final static, 严格保证对于所有实现者来说只有一份原始的数据。

那么在架构设计时,如何使用抽象类和接口来解决问题,是一个非常复杂的问题,抽象类更侧重于归纳同一父类的子类的共同特征,如果属性,方法;接口更侧重于定义任意的类有没有相同语义的方法,它是一个一经定义不轻易更改的规范,它的修改在项目中,往往是动一发而牵全身,即使有考虑不周到的地方,也会使用新增接口的形式去弥补。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

abstract class和interface有什么区别

最佳答案1、构造方法不同:

抽象类可以有构造方法,接口中不能有构造方法。抽象类中可以有普通成员变量,接口中没有普通成员变量。抽象类中可以包含非抽象普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法。

2、访问权限不同:

抽象类中的抽象方法的访问权限可以是 public、protected 和(默认类型,虽然 eclipse 不报错,但也不能用,默认类型子类不能继承),接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。

3、变量类型不同:

抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问权限可以是任意的,但接口中定义的变量只能是 public static final 类型的,并且默认即为 public static final 类型。

4、书写规范不同:

一个类可以实现多个接口,用逗号隔开,但只能继承一个抽象类,接口不可以实现接口,但可以继承接口,并且可以继承多个接口,用逗号隔开。

参考资料来源:百度百科-interface

参考资料来源:百度百科-abstract(抽象修饰符)

C#一般把什么定义接口 行为还是什么

最佳答案接口可以包含一个和多个成员,这些成员可以是方法、属性、索引指示器和事件,但不能是常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员,如下一些说明:

1、接口的成员是从基接口继承的成员和由接口本身定义的成员。

2、接口定义可以定义零个或多个成员。接口的成员必须是方法、属性、事件或索引器。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。

3、定义一个接口,该接口对于每种可能种类的成员都包含一个:方法、属性、事件和索引器。

4、接口成员默认访问方式是public。接口成员定义不能包含任何修饰符,比如成员定义前不能加abstract,public,protected,internal,private,virtual,override 或static 修饰符。

5、接口的成员之间不能相互同名。继承而来的成员不用再定义,但接口可以定义与继承而来的成员同名的成员,这时我们说接口成员覆盖了继承而来的成员,这不会导致错误,但编译器会给出一个警告。关闭警告提示的方式是在成员定义前加上一个new关键字。但如果没有覆盖父接口中的成员,使用new 关键字会导致编译器发出警告。

6、方法的名称必须与同一接口中定义的所有属性和事件的名称不同。此外,方法的签名必须与同一接口中定义的所有其他方法的签名不同。

7、属性或事件的名称必须与同一接口中定义的所有其他成员的名称不同。

8、一个索引器的签名必须区别于在同一接口中定义的其他所有索引器的签名。

9、接口方法声明中的属性(attributes), 返回类型(return-type), 标识符(identifier), 和形式参数列表(formal-parameter-lis)与一个类的方法声明中的那些有相同的意义。一个接口方法声明不允许指定一个方法主体,而声明通常用一个分号结束。

10、接口属性声明的访问符与类属性声明的访问符相对应,除了访问符主体通常必须用分号。因此,无论属性是读写、只读或只写,访问符都完全确定。

11、接口索引声明中的属性(attributes), 类型(type), 和形式参数列表 (formal-parameter-list)与类的索引声明的那些有相同的意义

因此,接口需要定义什么样的内容完全取决于需求,以我的经验,定义共用的属性、方法这类比较常见,也就是你说的行为

想要成长,必定会经过生活的残酷洗礼,我们能做的只是杯打倒后重新站起来前进。上面关于接口有构造方法吗的信息了解不少了,合众百科希望你有所收获。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息储存空间服务,不拥有所有权,不承担相关法律责任。如有发现本站涉嫌抄袭侵权/违法违规的内容,请发送邮件,一经查实,本站将立刻删除。

猜你喜欢

  • 致公党党员费用标准,致公党 党员证百科

    致公党党员费用标准,致公党 党员证

    入党后,户口上的政治面貌怎么改答拿着身份证、户口本、党员证到派出所,请派出所给你办理一下,政治面貌就改过来了。政治面貌,也有的称做政治面...

    2024-10-23 110
  • 整体浴室厂家百科

    整体浴室厂家

    十大名牌卫浴排行榜答十大名牌卫浴排行依次是Kohler科勒、TOTO、CME朝阳、JOMOO九牧、ARROW箭牌卫浴、东鹏整装卫浴、FAENZA法恩莎、annwa安华、AOSMAN澳斯曼、恒...

    2024-10-23 76
  • 心电图分析方法;心电图分析方法 三线图百科

    心电图分析方法;心电图分析方法 三线图

    儿科医生自我鉴定范文答【 #个人简历# 导语】儿科医生在自我鉴定的时候可以使自己在将来的工作上更少的出现差错。以下是 无 整理的儿科医生自我鉴定...

    2024-10-23 140
  • 四级做题方法!英语四级做题顺序是什么样子的?百科

    四级做题方法!英语四级做题顺序是什么样子的?

    英语四级做题顺序是什么样子的?答英语四级做题顺序:写作——听力——阅读(仔细阅读→长篇阅读)——翻译——阅读(完形填空)。根据四级考试流...

    2024-10-23 93
  • 大运三轮生产基地在哪里百科

    大运三轮生产基地在哪里

    大运集团有限公司是国企吗优质回答大运集团是民营企业,不是国企。大运集团有限公司创建于1987年,位于山西省运城经济技术开发区,是集汽车、摩托车...

    2024-10-23 132
  • 我国标准体重计算方法有哪些百科

    我国标准体重计算方法有哪些

    人的标准体重怎样计算最佳答案一、世卫计算方法:男性:(身高cm-80)×70﹪=标准体重女性:(身高cm-70)×60﹪=标准体重标准体重正负10﹪为正常体重标准体...

    2024-10-23 129
  • 听觉统合失调矫正方法;2018-12-30(本体觉 听觉统合失调及干预)百科

    听觉统合失调矫正方法;2018-12-30(本体觉 听觉统

    2018-12-30(本体觉 听觉统合失调及干预)优质回答本体觉又称深部感觉,是指肌、腱、关节等运动器官本身在不同状态下产生的感觉。通俗地说,就是我们...

    2024-10-23 112
  • 孝感翻译公司费用高吗百科

    孝感翻译公司费用高吗

    孝感金麦田教育咨询有限公司怎么样?优质回答孝感金麦田教育咨询有限公司是2018-01-16在湖北省孝感市注册成立的有限责任公司(自然人投资或控股),注册...

    2024-10-23 64
  • 自如出租房屋托管费用多少钱百科

    自如出租房屋托管费用多少钱

    自如有中介费吗?自如到底怎么样?优质回答现在互联网行业发展得很好,这也造福了广大网民,现在大家做很多事情只需要通过网络动动手指就能办到,...

    2024-10-23 178
  • 纹身后保养方法:纹身后怎么保养百科

    纹身后保养方法:纹身后怎么保养

    纹身后怎么保养最佳答案1、文身完成三到四小时之后,可以使用温水清洗文身的部位,可以使用沐浴液,但之后一定要用毛巾完全擦干,使纹身部位保持干...

    2024-10-23 170
  • 浙江组合柜费用:组合柜厂家百科

    浙江组合柜费用:组合柜厂家

    洗脸盆组合柜陶瓷一体哪个牌子好?答1. 目前市场上有很多品牌的洗脸盆组合柜陶瓷一体,但是其中一些品牌的质量和口碑更好。2. 一些知名品牌的洗脸盆...

    2024-10-23 126
  • 暖宝宝的正确使用方法--暖宝宝的正确使用方法是什么百科

    暖宝宝的正确使用方法--暖宝宝的正确使用方法是

    暖宝宝贴在衣服上还是贴在皮肤上优质回答暖宝宝是贴在衣服上的,不可以直接贴在皮肤上。暖宝宝直接接触皮肤,很可能会导致皮肤烫伤。使用暖宝宝时...

    2024-10-23 52
  • 证内心的方法!如何证明内心定理?有什么性质吗?百科

    证内心的方法!如何证明内心定理?有什么性质吗

    如何证明内心定理?有什么性质吗?优质回答答:定理:三角形内心指三个内角的三条角平分线相交于一点,这个点叫做三角形的内心。这个点也是这个三...

    2024-10-23 153
  • 怎么样才可以增强记忆力百科

    怎么样才可以增强记忆力

    高考加强记忆力的好方法?答准备迎接高考了吗?考试的关键之一就是记忆力。今天,我来和你们分享几个提升记忆力的方法,让你们在考场上发光发热!...

    2024-10-23 54
  • LOL二周年皮肤多少钱?百科

    LOL二周年皮肤多少钱?

    LOL二周年皮肤多少钱?最佳答案诺克萨斯之手德莱厄斯限定皮肤 勇敢的心英雄:德莱厄斯类型:限定特效:是期限:永久价格:4900点券末日使者费德提克...

    2024-10-23 109
  • 粽子怎么包的方法—包粽子4步慢动作讲解,棱角分明煮不散,包法窍门全在,一看就会百科

    粽子怎么包的方法—包粽子4步慢动作讲解,棱角

    包粽子4步慢动作讲解,棱角分明煮不散,包法窍门全在,一看就会最佳答案“ 五月五, 麦子熟,包好粽子过端午。 ”在端午节这天,必不可少的传统活动...

    2024-10-23 138
  • sat考试真题百科

    sat考试真题

    SAT真题 OG OC用哪个答您好,我是专注留学考试规划和留学咨询的小钟老师。留学申请的每一步都充满挑战,我在这里为您提供从留学目的地选择到申请材料...

    2024-10-23 57
  • 出入境体检费用!出国留学是否要体检呀??百科

    出入境体检费用!出国留学是否要体检呀??

    出国留学是否要体检呀??优质回答留学人员赴国外学习,除个别国家不需申办签证外,绝大多数国家均需提前向各驻华使领馆申办入境签证。而签证是控制...

    2024-10-23 90
  • 接口有构造方法吗,接口有构造函数吗百科

    接口有构造方法吗,接口有构造函数吗

    php抽象类和接口的区别最佳答案区别:1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。...

    2024-10-23 110
  • 出口报价包括哪些百科

    出口报价包括哪些

    外贸报价怎么报优质回答1、FOB、CFR和CIF三种价格的基本构成FOB:成本+国内费用+预期利润CFR:成本+国内费用+出口运费+预期利润CIF:成本+国内费用+出口运...

    2024-10-23 155