A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王松朝 金牌黑马   /  2011-7-22 17:20  /  12411 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口类中的方法可以是非抽象或final的吗?

评分

参与人数 1技术分 +1 收起 理由
小龙 + 1 努力学习,天天向上!

查看全部评分

8 个回复

倒序浏览
黑马网友  发表于 2011-7-22 17:43:29
沙发
不能…默认的是public abstract。既然是都是抽象的,如果还是final,那这个接口怎么实现…不可以吧

评分

参与人数 1技术分 +1 收起 理由
小龙 + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-22 17:52:12
藤椅
给你这个!很详细的,关键比较简单,明了!

[quote] 原帖由 [i]gdky005[/i] 于 2011-07-22 17:49 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=4673&ptid=451][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]太着急发帖了!哈哈

答案找到了!

看起来还算容易理解把!

接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.

1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface.

2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。

3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。

4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。

5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。

7.接口中的方法默认都是 public,abstract 类型的。

简单明了!哈哈,也可以解决另外一个同学的问题! [/quote]

评分

参与人数 1技术分 +2 收起 理由
小龙 + 2 乐于助人,但是自己也得把这个知识点给吸收

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-22 17:52:59
板凳

回复 楼主 的帖子

绝对不行:) :victory: :handshake
回复 使用道具 举报
黑马网友  发表于 2011-7-22 17:56:44
报纸
哈哈,我就喜欢  
短小精干的回答,尤其标上1.2.3.


一眼就可以看懂!
不像有些文章,例如这个:[quote] 原帖由 [i]zhuani21[/i] 于 2011-07-22 16:16 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=4640&ptid=444][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]张老师的javascript视频已经看到DOM的结尾了,从HTML到CSS到javascript基础然后DOM的过程中遇到很多困难,有时候会被烦躁的情绪左右,有时候也会放弃坚持,当烦躁过后总是鼓起勇气坚持往下看,用心理解,也上网上找一些相关资料辅助理解,有些东西的学习不能简单的相信和学习一个人的视频。

HTML是超文本标记语言,在学习了这些内容以后回头理解HTML的内容是这样的。HTML是一种标记语言,它的关键用英文说就一个词:tag。是的,的确是这样,其中文档中的很多元素都是一个一个的标签,他们定义了每个元素的在网页中的作用,其中很多元素有一些属性,这些属性可以规范元素内容的格式和样式,但是在学习了CSS以后才发现,HTML的关键是tag而元素中的属性使用CSS来处理才更容易形成整体的风格,方便做页面的设计,这样的回想可以深化对HTML的理解,和简化对其中很多元素的属性的记忆。

CSS层叠样式表,学习张老师视频的时候对这里的理解很肤浅,只是觉得貌似和HTML的很多属性冲突,直接使用HTML也可以实现很多CSS中表现的格式,但是出于对一种成熟和流行的技术一种模糊的相信,从新去网络上寻找了一些新的更容易理解的资源,才对CSS有了新的认识。CSS是网页美丽的外衣,通过对CSS的设计可以呈现出完全迥异的风格,他通过selector和设置HTML标签的class和id属性实现对网页中元素和元素集合的操作,通过设置许多共通的属性来实现页面的设计,这比直接记忆各个HTML标签中的样式属性要容易掌握的多。同时还可以养成设计网页界面整体风格的良好习惯(不会再HTML标签中胡乱添加属性)。

JavaScript是一种脚本语言,它的很多语法在学习java以后看起来非常简单,除了一些小的地方的规范不同需要注意,例如定义变量的var定义函数的function等。但是javascript也有很多细节,这些东西在网络上都可以查找得到,在掌握了大体轮廓的基础上看一些细节同样会获益匪浅。例如:javascript的运行是同步于浏览器解析HTML文档,也就是在文档前面出现的script标签的内容会变先执行,在后面的script标签会被后执行,所以虽然同一个HTML文档的javascript代码片段的内容可以相互引用,但是在后面的script标签中定义的函数和变量在前面的script片段是不能引用的,因为在这是还没有那些变量和方法,但是在同一个script片段中的前面代码可以引用后面得属性或方法(但是最好不要这样做,容易出错而且可读性超差),因为javascript同样有预编译的过程。

DOM编程和CSS是看张老师视频中让我比较晕的地方,主要是第一次学习这些东西还没有整体的认识,而张老师的视频在我认为,细节讲解的太多,很多属性初学时感觉起来就是在翻译。net中的方法属性,这里也是几次打断学习进度的地方。个人感觉张老师的这阶段的视频对于内容的整体性的介绍和他们的作用于功能介绍的不足,学习DOM的时候在开始的很长一段时间内都没有认识到DOM是干什么的,他到底有什么用,曾有这样的疑问一个又一个的方法属性放在script片段中不是和用HTML一样么?这样的意义是什么?我知道这样看下去是在浪费时间,同时打击自己的信心(从开始就知道java的学习不会一帆风顺,也做好了坚持的准备),无奈又上网络学习了一些DOM的基础才坚持把DOM看到现在,说句实话,DOM既然不简单的是HTML的DOM就应该先把DOM模型的体系结构说一下才好,DOM是什么?学习了DOM基础我才对它有了一些认识,深刻的觉得这个名字取的好,从这里我学习到对于有些技术特别是简写的那些名字的技术,深刻理解名字的含义,非常有利于明白一种技术的作用。起始一种技术规范的产生的根本原因是因为有一种需求,他需要用这种技术完成某样事,讲解一种技术务必应该从这里开始,这种技术是什么?他能干什么?他是怎么做的?再举一些简单的例子演示一下。DOM,文档对象模型;HTML DOM ,HTML文档对象模型;XML DOM,XML 文档对象模型。它的意义就是映射相应的文档对象,HTML DOM映射一个网页的方方面面的内容,他映射一个网页有什么用?其实他不仅仅是映射文档,同时他动态的提供了访问和操作文档的功能。因为有这样一种需求,例如,对于已经编写好的网页需要改写他的背景颜色,这样就需要改写他的bgcolor,怎么改写?对于已经编写好的网页,DOM正是提供了这样的一种方法,他不仅能访问读取bgcolor,他还可以改。理解到这里再看张老师的视频我才觉得容易很多,现在还有3个视频就看完DOM了,虽然看了那么多的方法和乱七八糟的属性不能记住,但是学习的时候如果能够理解就会或多或少留有一些印象的,以后用的时候再查找其资料就方便多了,
这里看起来有些埋怨老师了。其实是这样的,在张老师的视频中由于内容很多,很多东西一带而过,没有能理解其思想,那么看后面的东西就会比较吃力,从而会很烦躁或者自信心受到打击,甚至埋怨老师。其实张老师视频个人感觉比较适合有一定基础的人看,或者多看几遍,真的是回头再看还有收获的。对于站在一个初学者立场上来看,有些东西没有学习过并不那么容易理解,教授的知识并不是只有知识点,有时候切入点更重要。

在学习开始的时候就做好了坚持到底的准备,并且要有遇到挫折的准备,java学习并没有想象中那么难,当然更不会很简单,遇到困难的时候找方法,想办法才是坚持到底决心的体现,不能抱住石头往死啃,现在java学习的资料很多,但是其知识点不管多少个培训机构讲,讲来讲去还是那么多,要综合利用网络资源 [/quote]


看了让人头大!
提议大家以后用精简的语言来回答问题,要一针见血!
要是嫌不够详细的话,可以加上:欲知详情,请百度或谷歌一下!哈哈:lol :lol :lol :lol :lol :lol :lol :lol :lol :lol :lol :lol
:lol :lol :lol :lol :lol :lol
回复 使用道具 举报
也就是说接口中的方法一定而且必须全部是抽象方法喽?
回复 使用道具 举报
黑马网友  发表于 2011-7-22 19:21:31
7#
接口中的方法必须类抽象方法且为public
回复 使用道具 举报
黑马网友  发表于 2011-7-22 20:15:30
8#
抽象类可以有非抽象方法,接口只能有抽象方法,
回复 使用道具 举报
黑马网友  发表于 2011-7-22 22:46:22
9#
接口中的方法自动地属于public,因此在接口声明方法时,不必提供关键字public。接口中决不能含有实例域,也不能在接口中实现方法,提供实例域和方法实现的任务应该由实现接口的那个类来完成,当然接口中可以定义常量,因此可以将接口看成是没有实例域的抽象类。很显然,在接口中定义非抽象和final的方法无意义。

评分

参与人数 1技术分 +1 收起 理由
小龙 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马