Java中 一个抽象类实现接口了某接口 则必须实现该接口中的所有方法么

> 问题详情
java 接口内的方法都是公共的、 【 11 】 的,实现接口就要实现接口内的所有方法。
悬赏:0&答案豆
提问人:匿名网友
发布时间:
java 接口内的方法都是公共的、 【 11 】 的,实现接口就要实现接口内的所有方法。请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
您可能感兴趣的试题
1(12)java 语言的 【 12 】 可以使用它所在类的静态成员变量和实例成员变量 , 也可以使用它所在方法中的局部变量。2(13) 下列程序构造了一个 Swing Applet ,请在下划线处填入正确的代码Import javax.swing.*;Import java.awt.*;Public class SwingApplet extends 【 13 】 {Jlabel l = new Jlabel ( “ This is a Swing Applet. ” );Public void init(){Container contentPane = getContentPane();contentPane.add(1);}}
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
找答案会员
享三项特权
找答案会员
享三项特权
找答案会员
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
比如:&【接口】&interface Int&{&void fun();&String print();&}&【实现接口抽象类】&public abstract class Abtest implements Int&{&public void fun()&{&}&public abstract String print();&}&【测试类,继承自上面的抽象类】&public class Test extends Abtest&{&public static void main(String [] args)&{&Test t = new Test();&t.print();&}&public String print()&{&System.out.println("success");&&}&}&所以,楼主可以定义那样的,实现接口的抽象类。&
阅读(330)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'如果只想实现一个接口中的部份方法那这个类必须是抽象的',
blogAbstract:'比如一个类要实现一个接口,那么必须实现接口里的每个方法,那么如果你实现了接口里的一部分方法,而有些方法没有实现的话,那么这个类就必须定义成抽象类,如果全部实现了接口中的方法,你可以定义这个类抽象,也可以定义这个类为实体类(因为一个类含有抽象方法的话这个类就必须定义成抽象类)。&比如:&【接口】&interface Int&{&void fun();&String print();&}&【实现接口抽象类】&public abstract class Abtest implements Int&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:1,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}java怎么获取某个父类(或接口)的所有子类,怎么获取加了某个注解的所有类?
如题,正在写一个组件,想获取某个父类的所有子类。(这是方案一)
这种方式在spring里面有(我想知道不用spring怎么实现)
如果不行,想通过注解,获取加了某个注解的所有类。(方案二)
这叫getBeansOfType()返回的是Bean实例不是类,这些实例都是spring容器管理的,所以他可以返回。
说方案前,再多问一句,你究竟说的是类还是实例
引用来自“逝水fox”的评论
这叫getBeansOfType()返回的是Bean实例不是类,这些实例都是spring容器管理的,所以他可以返回。
说方案前,再多问一句,你究竟说的是类还是实例
我看了下spring底层是会把bean实例存储起来的,他后面可以直接获取到。这里问的是获取所有子类名称。
引用来自“逝水fox”的评论
这叫getBeansOfType()返回的是Bean实例不是类,这些实例都是spring容器管理的,所以他可以返回。
说方案前,再多问一句,你究竟说的是类还是实例
这里不讨论获取所有目前已经加载的类,或者是所有类实例,那个东西通过java agent可以实现(具体没看,只知道可以这么做)
--- 共有 1 条评论 ---
java agent不是万能的, 你只能处理jvm load的类,没有用到的类, 即使在类路径下,java不会发现, 不会加载,自然agent也处理不到。
方案1和方案2都需要扫描类的,毕竟类加载首先也得知道路径才会去加载类的
如何扫描,可以参考这个代码 /blog/644876
现在你已经获取目标的路径下的所有class了,class可以获取注解,父类,接口神马的都可以
接下来随便你怎么搞了
引用来自“逝水fox”的评论
这叫getBeansOfType()返回的是Bean实例不是类,这些实例都是spring容器管理的,所以他可以返回。
说方案前,再多问一句,你究竟说的是类还是实例
引用来自“孙青彪”的评论我看了下spring底层是会把bean实例存储起来的,他后面可以直接获取到。这里问的是获取所有子类名称。
没有提供API返回指定类的之类,也没有办法直接获取到。从Java自己的执行过程来说也不可能提供这个API。
Spring的component-scan的做法是他自己扫描classpath下的class文件来分析。你可以参考他的实现来做。不过需要分析class文件的字节码,而不是等ClassLoader加载了之后分析Class对象(把全部classpath下的类加载进系统你的静态区会OOM的)
另外一个参考的做法是使用java.util.ServiceLoader的机制可能更简便一点。这个是Java自己提供的服务实现发现加载的机制。
引用来自“逝水fox”的评论
这叫getBeansOfType()返回的是Bean实例不是类,这些实例都是spring容器管理的,所以他可以返回。
说方案前,再多问一句,你究竟说的是类还是实例
引用来自“孙青彪”的评论我看了下spring底层是会把bean实例存储起来的,他后面可以直接获取到。这里问的是获取所有子类名称。引用来自“逝水fox”的评论
没有提供API返回指定类的之类,也没有办法直接获取到。从Java自己的执行过程来说也不可能提供这个API。
Spring的component-scan的做法是他自己扫描classpath下的class文件来分析。你可以参考他的实现来做。不过需要分析class文件的字节码,而不是等ClassLoader加载了之后分析Class对象(把全部classpath下的类加载进系统你的静态区会OOM的)
另外一个参考的做法是使用java.util.ServiceLoader的机制可能更简便一点。这个是Java自己提供的服务实现发现加载的机制。
我只想获取类名称,不需要.class,在写服务框架发现,没法简单的发布服务(不用spring),网上有用配置文件的写了api类名称和实现类的映射,感觉比较挫。
--- 共有 2 条评论 ---
ServiceLoader的方式其实也是在打包的时候META-INF下带个配置文件,让Java的API能自己发现。你如果不用这个方式的话
那只能分析class文件结构,这个用asm来处理比较合适。只取类名和父类名称或者类级别的注解类名称(最好还是用注解比较直接)。最好不要偷懒像上面说的把类load进来再分析,一旦无用的类加载了,ClassLoader是不会卸载它们的不一定,关键要看子类是否是抽象类。
如果子类是非抽象类,则必须实现接口中的所有方法;
如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!1、抽象类定义
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用
修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是
不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。2、抽象类特点
1)抽象类不能实例化。
2)抽象类可以包含抽象方法和抽象访问器。
3)不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
4)从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。3、与具体类的比较
1)抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2)允许(但不要求)抽象类包含抽象成员。
3)抽象类不能被密封。4、与接口的比较
a、不能实例化;
b、包含未实现的方法声明;
c、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)
a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。
b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。
c、抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。
d、抽象类是对象的抽象,然而接口是一种行为规范。
阅读(...) 评论() &3699人阅读
JAVA(581)
java中,一个类实现某个接口,必须重写接口中的所有方法吗???
不一定,关键要看子类是否是抽象类。
如果子类是非抽象类,则必须实现接口中的所有方法;&
如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!
1、抽象类定义
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
2、抽象类特点
1)抽象类不能实例化。
2)抽象类可以包含抽象方法和抽象访问器。
3)不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
4)从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。
3、与具体类的比较
1)抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2)允许(但不要求)抽象类包含抽象成员。
3)抽象类不能被密封。
4、与接口的比较
a、不能实例化;
b、包含未实现的方法声明;
c、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)
a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。
b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。
c、抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。
d、抽象类是对象的抽象,然而接口是一种行为规范。
其他类似问题
为您推荐:
提问者采纳
抽象类可以不用
普通类必须
有问题补充,帮忙看下
AbstractListModel 是个抽象类
所以不用完全实现
哥们帮忙看下,class MyComboBox extends AbstractListModel implements ComboBoxModel
为什么MyComboBox可以只实现 AbstractListModel 继承ListModel中的两个方法而其他没实现呢???
因为 ListModel 的部分方法已经被AbstractListModel 实现了
抽象类可以部分实现,甚至完全(或者完全不)实现接口中的方法,还能额外声明更多的abstract方法
作为子类,就必须把所有没有实现的方法都实现,已经被父类实现的非final方法,可以覆盖
如果你能看到类的源码应该能很快理解
提问者评价
评论(3)&|&13&0
&|&&采纳率28%
其他3条回答
楼主,先声明一点,javax.swing基本是过时的,属于前台的工作,现在前台基本都是定制的,JAVA编程只要关注后台就可以,不过你问的接口问题倒是很重要的,给你解释以下,java中类和接口的设计完全体现了java语言的一些设计思想,比如面向对象,继承、多态等
1 接口的设计解决了java只能单继承的缺点,可以实现多个接口来实现java的多继承
2 实现某个接口必须覆写其中的所有方法,当然也可以是一个空的实现(方法体为空没有任何作用)
3 楼主也许会问了空实现有什么用呢,这就是java的特殊设计,通常的是接口在最上面,下面会有一个这个接口的实现类,有时候这个实现类也是一个空的实现,没有任何方作用!!!编程人员只需要实现那个空的方法,覆写其中自己需要方法的就可以了~~
为什么要这样做呢?原因就是接口是一个抽象的概念,与具体的底层、实现都无关,打个比方,现在的网络编程都是与HTTP协议相关的,如果将来有新的协议出现就只要实现这个接口就可以了,完全不用做任何修改就可以把新的协议容纳进来
总结一下,接口就是一个物体的抽象,规定了这个物体所有的行为方法,与具体的实现无关,这正体现了抽象的概念~~
评论(1)&|&13&0
哈哈,这是API文档的问题,你没看过Java源码,源码中实现的方法比这多,只是API没写全。要学会看源码!!!!
评论&|&2&1
必须地!2楼正解
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1403585次
积分:18223
积分:18223
排名:第541名
原创:37篇
转载:2545篇
评论:36条
(35)(124)(10)(9)(37)(32)(10)(48)(41)(103)(73)(87)(79)(93)(37)(67)(155)(187)(83)(72)(61)(111)(81)(17)(87)(166)(85)(108)(139)(117)(63)(63)(22)(58)(21)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 抽象类不能实现接口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信