• 关于 Java抽象类 的搜索结果

回答

抽象类和接口的区别:默认的方法实现 抽象类可以有默认的方法实现完全是抽象的。接口根本不存在方法的实现。抽象类中可以有已经实现了的方法,也可以有被abstract修饰的方法(抽象方法),因为存在抽象方法,所以该类必须是抽象类。但是接口要求只能包含抽象方法,抽象方法是指没有实现的方法。所以就不能像抽象类那么无赖了,接口就根本不能存在方法的实现。实现 抽象类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现。抽象类虽然不能实例化来使用,但是可以被继承,让子类来具体实现父类的所有抽象方法。有点老子没完成的梦想交给儿子来完成,但是如果子类将抽象方法没有全部实现,就必须把自己也修饰成抽象类,交于继承它的子类来完成实现。就相当于,儿子能力不够也没完成老爹的梦想,现在儿子等着再生儿子(被继承),然后让孙子去完成。以此类推,知道没有抽象函数。接口的实现,通过implements关键字。实现该接口的类,必须把接口中的所有方法给实现。不能再推给下一代。和抽象类相比,抽象类是将梦想传给家族,一代一代去完成。那么接口就是掌门人找大师兄来完成帮派的鸿星伟业,这时候就只有一次希望,要么有能力就实现,没能力就不要接。抽象类可以有构造器,而接口不能有构造器这个原因很简单,我们回到双方的定义上来,抽象类再怎么流氓无赖也好,终究是属于类,就天生享有类的所有特性(但是不能实例化),当然包括类的构造方法,也就是构造器。但是接口是所有抽象方法的集合,注意,是集合,不是类。当然没有构造方法一说,更别提什么构造器了。抽象方法可以有public、protected和default这些修饰符 接口方法默认修饰符是public。你不可以使用其它修饰符。抽象类的目的就是被继承,抽象方法就是为了被重写,所以肯定不能用private修饰符,肯定是可以用public的。但是protected和default也是可以的。接口就有且只有一个public修饰。(是不是感觉抽象类像小儿子各种耍无赖,接口就像私生子,说什么只能是什么)抽象类在java语言中所表示的是一种继承关系,一个子类只能存在一个父类,但是可以存在多个接口。java在类的继承上并没有多继承。抽象类属于类,所以可以被继承。但子类只能继承一个父类。java为了实现多继承,使用了接口。一个类可以实现多个接口。继承就好比生了孩子,只能有一个爹,但是这个孩子可以学语文,学数学,学英语等等很多东西,而语文、数学、英语就相当于接口。总的来说,因为java中抽象类只有单继承,接口就可以实现多继承。抽象方法比接口速度要快接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。记住抽象方法是小儿子,从小吃的好所以跑的快,接口是私生子,从小日子苦,营养不良。如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。 如果你往接口中添加方法,那么你必须改变实现该接口的类。抽象类可以有一些非抽象方法的存在,这些方法被称为默认实现。如果添加一个默认实现方法(不能是抽象方法),就不需要在子类中去实现,所以继承这个抽象类的子类无须改动。但是,接口中只能添加抽象方法,当你添加了抽象方法,实现该接口的类就必须实现这个新添加的方法。因为,定义中说的很清楚,接口的实现必须实现所有的方法。所有,当然包括新添加的方法。

hiekay 2019-12-02 01:39:31 0 浏览量 回答数 0

问题

Java抽象方法和抽象类有什么规则?

小天使爱美 2020-04-07 13:16:47 2 浏览量 回答数 1

问题

java抽象类的使用问题

蛮大人123 2019-12-01 20:14:34 887 浏览量 回答数 1

消息队列 RocketMQ 9.9元包月起

消息队列 RocketMQ 9.9元包月起,另含2000万次API 免费调用额度

问题

下面关于Java的说法不正确的是

游客pklijor6gytpx 2019-12-01 22:02:41 20 浏览量 回答数 1

问题

java怎么建抽象类

云计算小粉 2019-12-01 19:54:12 1116 浏览量 回答数 2

问题

java怎么继承抽象类

云计算小粉 2019-12-01 19:57:04 414 浏览量 回答数 3

问题

java怎么创建抽象类

云计算小粉 2019-12-01 19:52:33 635 浏览量 回答数 1

问题

java中什么是抽象类

云计算小粉 2019-12-01 19:56:13 368 浏览量 回答数 1

问题

java抽象类怎么实例化

云计算小粉 2019-12-01 19:55:00 1150 浏览量 回答数 2

问题

Java抽象类有什么用处?

小天使爱美 2020-04-07 13:17:43 0 浏览量 回答数 1

问题

java抽象类和接口有什么区别

云计算小粉 2019-12-01 19:54:15 358 浏览量 回答数 1

问题

Java什么时候会用到抽象类?

小天使爱美 2020-04-07 13:15:39 0 浏览量 回答数 1

问题

Java接口和抽象类之间有什么异同?

小天使爱美 2020-04-07 13:18:24 0 浏览量 回答数 1

问题

Java的IO流有几个抽象基类?

小天使爱美 2020-04-12 10:43:42 3 浏览量 回答数 1

问题

[@墨玖tao][¥20]JAVA中接口和抽象类的区别

公西焕舒 2019-12-01 20:24:36 532 浏览量 回答数 4

回答

实例、对象、类、抽象类、接口是java的语法,和android没有关系。 抽象类是不可以实例化并且包含抽象成员的类,一种特殊的类。 类的实例叫做对象 接口约定了一个类必须实现哪些方法 android的活动(activity)是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务

爵霸 2019-12-02 02:10:45 0 浏览量 回答数 0

问题

[@talishboy][¥20]抽象类是什么?它与接口有什么区别?你为什么要使用过抽象类?

李博 bluemind 2019-12-01 19:27:02 435 浏览量 回答数 1

回答

备注:Java8中接口中引入默认方法和静态方法,以此来减少抽象类和接口之间的差异。 现在,我们可以为接口提供默认实现的方法了,并且不用强制子类来实现它。 接口和抽象类各有优缺点,在接口和抽象类的选择上,必须遵守这样一个原则: 行为模型应该总是通过接口而不是抽象类定义,所以通常是优先选用接口,尽量少用抽象类。 选择抽象类的时候通常是如下情况:需要定义子类的行为,又要为子类提供通用的功能。

问问小秘 2020-03-27 17:43:21 0 浏览量 回答数 0

回答

接口和抽象类的区别,在java8之前,接口的方法是没有方法体的,抽象类中的方法可以有方法体,同时也可以没有方法体,但是没有方法体的方法需要有abstract修饰。java8之后稍有不同,interface可以有方法,但是是一种特殊的方法

1117247909936948 2019-12-02 01:48:37 0 浏览量 回答数 0

问题

java中如何查找某个特定类型作为形参的方法

蛮大人123 2019-12-01 20:06:50 1037 浏览量 回答数 1

问题

java中到底为什么要用到抽象类?

蛮大人123 2019-12-01 20:24:53 1279 浏览量 回答数 1

回答

JAVA中的类是具备某些共同特征的实体的集合,它是一种抽象的概念; 2.用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象

xuena_cao 2019-12-02 01:01:34 0 浏览量 回答数 0

回答

toString().你确定你没开玩笑?感谢提醒不全部实现还能叫接口么。。。你自己去写得试试,编译确实可以通过,我在想是不是这样接口更灵活一些只有接口的抽象实现类不用全实现,普通接口的方法都需要实现的总结的好<divclass='ref'> 引用来自“PythonLee”的评论toString().你确定你没开玩笑?toString确实默认了,现在问题来了,Shape2里面也有抽象的toString,而他的子类应该也会默认实现toString,可是编译器为什么提示我错误而且继承接口的抽象实现类的子类还必须实现抽象父类中没有实现的方法。。。。 LZ好深意:要知道Circle继承了Object,Object实现了toString(). 至于下面的抽象类Rhomboid是因为java是单继承,可没有直接父类实现toString(). abstractclassShape2{   publicabstractStringtoString();}classRTmpextendsShape2{   @Override   publicStringtoString(){      returnnull;   }}classRhomboidextendsRTmp{   //这里不报错}我只能说楼主的根据这个例子做出猜测,实在是没经过严格验证的.你为什么不试试其他名称的方法体呢?服了<divclass='ref'> 引用来自“Cong_Cong”的评论 LZ好深意:要知道Circle继承了Object,Object实现了toString(). 至于下面的抽象类Rhomboid是因为java是单继承,可没有直接父类实现toString(). abstractclassShape2{   publicabstractStringtoString();}classRTmpextendsShape2{   @Override   publicStringtoString(){      returnnull;   }}classRhomboidextendsRTmp{   //这里不报错}这种问题...哭了很凑巧,LZ写的例子种,toString方法刚好是java.lang.Object中的,而这家伙是所有类的顶级父类,你换个名字就知道问题在哪了

爱吃鱼的程序员 2020-06-14 17:04:49 0 浏览量 回答数 0

回答

1、Java为了简化设计和开发,抛弃了多重继承类的理念,因为多重继承类型带来很多潜在问题,比如重名方法和变量问题。2、Java提供了接口的多重继承支持3、接口只是 包含声明,属于部分约束。4、abstract class抽象类,可以包含具体实现,也可以包含没有实现代码的抽象方法,允许后代实现,这个比接口更丰富一些。某些情况下父类可以提前实现一些具体的代码,也可以不实现留着子类实现。更加灵活

徐雷frank 2019-12-02 01:49:22 0 浏览量 回答数 0

回答

<p>楼主所示的JAVA代码没错。用 <img height="189" src="https://oscimg.oschina.net/oscnet/ac2d557124095ac505fbef0174a5719e923.jpg" width="843">编译、运行都在掌控之中,不会报错。</p> <p>default方法是Java8提供的新特性,如果你的Eclipse使用的jdk低于8,或者配置工程Java语法检查低于javase-1.8,那么可能会出现这个错误,一个Java Compile配置界面如下图。</p> default和public不能同时修饰 java8接口写只能用default <p>含有抽象方法的类,必定是冠以关键字 abstract 的抽象类。极端情况,如果在一个类的定义中,包含的全部是抽象方法,那就只有是接口 interface。换言之,接口就是抽象类的极端情况。但是,这种说法,仅在 jdk1.8之前,成立。<br> jdk 1.8 对接口又有了新规定:可以包括 冠以 关键词 default 的 缺省/默认方法。换言之,jdk 1.8 允许 给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。</p> 楼主的接口 interface interfaceA 里含有 缺省/默认 default 的带方法体的方法 otherprint(),编译报错。那楼主一定用的是 jdk1.8 之前的版本来编译的。 比如下列代码,如果用jdk1.8以前的版本编译,就通不过。我用jdk1.8,就会成功通过编译,并顺利运行。 interface A { default void print(){ System.out.println("顺应天意"); } void print1(); } public class T implements A { public void print1(){ System.out.println("了却凡尘 "); } public static void main(String[] args) { T t = new T(); t.print(); t.print1(); } }   输出: D:\java\test\OS_China>javac T.java D:\java\test\OS_China>java T 顺应天意 了却凡尘 D:\java\test\OS_China>java -version java version "1.8.0_162" Java(TM) SE Runtime Environment (build 1.8.0_162-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode) D:\java\test\OS_China>   <p>jdk环境问题,检查eclipse的编译环境,工程jdk版本,或者用maven的话pom里的编译插件等等;代码在jdk8+是没有问题的</p>

爱吃鱼的程序员 2020-06-06 09:58:12 0 浏览量 回答数 0

回答

类库字面意思就是类的集合,类库不等于框架,Framework 是比类库更高一级的概念。类库是一个综合性的面向对象的可重用类型集合,这些类型包括:接口、抽象类和具体类。类库可以单独从第三方软件商获得。类库方法从技术上说并不属于某种语言。例如String类不是java语言的内建部分,而是java标准类库的一部分。包是类的容器,Java中的包一般均包含相关的类。

蛮大人123 2019-12-02 02:19:23 0 浏览量 回答数 0

回答

第一步我们首先需要了解java中的封装指的是什么,封装是一种将抽象性接口的实现细节都包装和隐藏起来的方法,它具有减少耦合,类内部结构可以修改,成员变量精准控制的优点,如下图所示: java中封装是什么,怎么实现封装 第二步下面来介绍java中的封装步骤,打开eclipse,封装首先会通过private私有化变量,限制对类属性的访问,如下图所示: java中封装是什么,怎么实现封装 第三步通过set和get方法设置对每个属性对外访问接口,外部需要改变类的属性,需要通过这些公共public的方法,如下图所示: java中封装是什么,怎么实现封装 第四步这里介绍一个java封装类的实例,创建一个Test雷,对变量进行私有,方法进行公共,set和get方法可以自动生成,如下图所示: java中封装是什么,怎么实现封装 第五步创建一个Test2类,创建Test类的对象,通过对象设置封装类的属性,然后通过get方法获取这些属性,如下图所示: java中封装是什么,怎么实现封装 第六步运行项目指挥,在控制台可以看到成功获取了封装类的属性,如下图所示: java中封装是什么,怎么实现封装

游客lz7tjhznmiyda 2019-12-02 01:03:55 0 浏览量 回答数 0

回答

1、请看源码: public interface OnClickListener { /** * Called when a view has been clicked. * * @param v * The view that was clicked. */ void onClick(View v); }2、可见,onClick()是在一个接口中的。在java中,一个类实现一个接口,需要实现里面的全部方法,如果不全部实现,则这个类为抽象类。3、在java的接口中,所有的方法都是抽象的,不论是否使用abstract修饰;所有的属性都是静态、不可变的,不论是否使用static final修饰。

蛮大人123 2019-12-02 02:16:45 0 浏览量 回答数 0

回答

1、请看源码: public interface OnClickListener { /** * Called when a view has been clicked. * * @param v * The view that was clicked. */ void onClick(View v); }2、可见,onClick()是在一个接口中的。在java中,一个类实现一个接口,需要实现里面的全部方法,如果不全部实现,则这个类为抽象类。3、在java的接口中,所有的方法都是抽象的,不论是否使用abstract修饰;所有的属性都是静态、不可变的,不论是否使用static final修饰。

爵霸 2019-12-02 02:22:57 0 浏览量 回答数 0

回答

在项目中的意义: 接口在项目就是一个业务逻辑,面向接口编程就是先把客户的业务提取出来,作为接口。业务具体实现通过该接口的实现类来完成。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。 采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于公司来说,意义更大。 在Java中的意义: Java本身也是一个不断完善的语言,他也在频繁的改动他的系统API来完善,他的API是一个庞大的体系,互相关联,如果不采用接口,而都是用实现类的话,那么API的改动就会给整个体系带来不稳定。而且如果改动API,那么就会有大量采用旧API的项目因无法正常运行,会损失大量客户。换句话说,JDK已经发布的API是一种承诺,一经发布就不能更改,即使原来API存在各种各样的问题(例如java.util.Properties类就是一个失败的例子)也必须保留,于是在Java里就出现了不建议使用的方法,但JDK依然提供该方法。而且Java语言本身是一个跨平台的语言,为了满足在各个平台下运行,就必须把各种操作做成接口,在编写各个平台下的实现类。 设计模式的体现: 在设计模式的原则里的开闭原则,其实就是要使用接口来实现对扩展开放,对修改关闭。在设计模式的其他原则里也有关于基于接口编程的原则,即依赖倒转的设计原则(DIP)----高层模块不应该依赖于底层模块。二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象(注:来自《敏捷软件开发--原则、模式与实践》Robert C.Martin著)。在使用面向接口的编程过程中,将具体逻辑与实现分开,减少了各个类之间的相互依赖,当各个类变化时,不需要对已经编写的系统进行改动,添加新的实现类就可以了,不在担心新改动的类对系统的其他模块造成影响。

阳阳羊 2019-12-02 01:03:45 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播