㈠ java下 类或接口不写修饰符 那它的访问权限默认是public嘛
你好,不是public,是default。
缺省情况下,是default,只能被同一包的访问。
希望可以帮到你,望采纳。
㈡ 为什么写Java程序需要接口
这里我们需要先明确定义,你说的java,如果单纯的指java本身,那么接口就是interface;如果你指的是工作中用到的java,那大部分指的是提供出去给其他程序调用的接口。如果是interface,那没啥好说的,java开始就提供了这个功能,方便coder在不考虑具体实现的情况下,先明确传参入参要实现的大概功能等问题,是个好东西。如果你指的是其他程序调用的接口,举个栗子:iPhone的手机想用android的数据线充电,那就需要一个转换头,我们的接口相当于附着在java项目上的转换头,只不过恰好也适用java这种语言写的罢了。
㈢ 为什么java中系统定义的接口不用进行重写而自定义的接口在类中全部都要进行重写呢
这可能要从操作系统上来说
服务器操作系统有很多
收费的系统有 unix ,windows等
免费的主要是 linux.
一般来说 windows 对的数据库是mssql 这两者的使用费用都相当昂贵. 具体来说都是好几十万的算.
unix的话 最稳定,一般国家基础电信系统都是unix. unix是最贵的操作系统了听说是百万级别的(money)
所以一般上了一定的规模 但是不想因为使用windows盗版而引来官司的话 都是使用linux+mysql 数据作为程序的基础支撑. 但是一般开发上用的多的系统都是windows 所以就存在了程序的跨平台问题,java就是看准了这个问题才出来的,借助于java vm的支持 能让java程序在所有环境下运行(官方语言),程序发展(web)最终使用的平台都是unix 所以java就能在之间一直运行.
很显然java的模式其实很大程度上模拟了dll的实现,但是dll的话只能在windows平台下运行.java只能在jvm上运行.原理是一样不知道您能不能理解,要知道sun也是做操作系统的 只是没有在市场中占到领导位置,所以退到了二线来做java虚拟机.但是发现这个很有远景,所以微软也改写了dll的规范 提出了.net的构思,在.net2.0的框架里面这个有很大的优化,但是微软一直是一个垄断公司他的目标都是销售他的操作系统,这是他的最终目标,所以他不会考虑跨平台的问题,所以java在很大程度上有优势也有益于我们的系统,但是要知道服务器系统最终都是走向unix所以都需要花钱的 哈哈. 不过说了这么多我也没说明白java的好处,
但是要知道java在j2ee上很有前途.毕竟发展了好多年啊.基础构件都比.net优秀.但是在窗体开发上java并不优秀.j2ms的话抄做的比较厉害,实际做的人不多.
㈣ JAVA子类必须重写实现的一个接口的所有方法吗如果没全写会怎么样
没全写会报编译错误啊。因为接口的方法都是抽象方法。实现一个接口就类似于继承一样,需要实现所有方法才不会报错。
㈤ Java的接口如果不实现就没有了吗
接口,正是面向对象的精髓所在。我这里说的接口泛指抽象,可以包括各种抽象方法。
楼主可能刚接触面向对象,对这个接口的作用感受不深,但是我可以告诉你,面向对象之所以存在,是需要你用全面的眼光看问题,而不是只盯住一个个的局部。否则的话面向对象的存在毫无意义,就会出现你的类似问题。
继承一个类当然是面向对象语言的特性之一,但是光如此的话意义有限,因为它的表现力有限,类能表示什么?举个例子来说,动物可以是一个类,你可能认为这个表示的范围已经够大了,但是它可以有一些你忽略掉的概念,比如动物是可数的,这就牵涉到“可数的”这个概念。“可数的”这个概念和“动物”这个概念显然不同,前者是抽象的,后者最多是半抽象的。“可数的”这个概念可以应用到其他的类中,比如植物,等等。在 Java 中,就可以定义成 public interface Countable {} 这么一个接口。
面向对象其实面向的是现实世界的模型。你要知道现实世界中很多概念都是抽象的,没办法用具体的事物代替,只能说某类具体事物是包含某些种概念的。
映射到程序语言,就是接口。接口是底层模型,描述了一种抽象概念的基本方法。因为它太抽象了,所以需要有类来包含并实现它。
面向对象的程序语言都有类似 Java 中“接口”的概念,它们都表现为抽象。面向对象程序语言和面向过程的语言的最大不同就是它们能够描述一类问题,这类问题甚至可以是纯粹抽象的,而不仅仅是解决一个具体的问题。
如果楼主仍然迷惑,不要紧,慢慢你就会体会到,我们可以利用面向对象来做更多的事情。
------------------------------------
还有注意到上面的说法:我始终说“继承”类,而“实现”接口。因为这两个在概念和用法上都有本质的区别。在 Java 中只可以继承一个类而可以实现多个接口。这在现实中同样有反映:
一类具体事物可以说属于一类更广泛的事物,而它却可以包含多种抽象的概念。
再举个例子,你可以更体会到接口的作用:
例如“恒星”属于“星球”,并且恒星是“会发光”的。
恒星可以有一个方法叫“发光”,这个显然不能从星球这个类继承,因为不是所有的星球都会发光,但是也不是所有会发光的物体都是恒星。
“恒星”本质上是“星球”,因此最合适的做法是让“恒星”继承“星球”,然后实现“会发光”这一接口,“会发光”这一接口中包含一个抽象的“发光”方法,比如“电灯”也可以实现这个接口,但“电灯”和“恒星”的“发光”是不一样的,需要各自实现。
------------------------------------
接口是一种特殊的类,它的确很特殊,特殊在它的抽象。在 C++ 中不用考虑这种特殊性,因为 C++ 中没有接口,而类可以多继承。在 Java 中的单继承导致必须考虑这种特殊性。因此 Java 的接口是抽象类无法代替的,在写一个规模化的程序时如何设计接口与类就体现了你对面向对象的理解。为了充分利用多接口实现的特性,尽量把最抽象的概念定义为接口是明智的选择!
㈥ Java不实现接口能不能实现接口里的方法
如果你实现在接口.那么你就必须实现接口里面的所有方法.
如果你在另一个类中写了一个和接口一样的方法,那两者又没有什么关系,
何谈实现接口
㈦ 问:java编程中 用接口和不用接口的好处
用接口可以把方法的定义和实现分离开来,也就是说,同一方法可以有多种实现方法,只要符合接口中声明的方法名。例如:一个持久化的接口A,其中有一个保存方法叫save。实现接口的类B,B中有一个方法签名与A中的save一样。类B中的save方法功能是把数据保存到数据库中。实现接口的类C,C中有一个方法签名与A中的save一样。类C中的save方法功能是把数据保存到文件系统中。这里类B与类C就是接口A的不同的实现。
㈧ 为什么写Java程序需要接口
我之所以以这个作为标题,并不是为了玩噱头,讲一些似是而非的空话,还是以探索加发现,
首先接口并不是Java才有的,这个是面向对象语言的基本特征之一。回想面向对象之前的那些
编程语言Win32 API中有个最经典的例子是当你在windows窗口中绘制一些内容以后,最大
化再最小化以后内容没了,原因是你没有捕获重写windows的一个WM_Paint的消息,
CallBack(回调)
,意思是你调用
然而当面向对象语言汹涌发展,各种设计模式应运大行其道,很少再有人提及Callback了,怎
么回事情,难道它消失了吗,没有它被面向对象语言换了个名字用得更加的大行其道,以致你以
为它不存在了,在Java中它就是接口。举个Java中最简单的例子,线程的Runnable接口,当
你在Java中启动一个线程时候,Java通过调用thread.start()函数来帮你实现线程的启动,但是
现,所以这个是个很好的CallBack的例子,你调用start()方法让JVM执行线程,JVM回调你实
另外个很好的例子,可以很完美的诠释接口的秒用,Java编译的时候常会有包依赖关系,假设A
要依赖B,这个没问题,如果有一天你发现B中的类C居然要反过来访问A里面的类D,你傻
眼了,这样就会破坏AB之间的依赖关系,还会产生编译错误,这个时候定义接口文件E在B中,
让D继承一下,传回一个reference给C,问题很完美的解决,也许这么说比较复杂,看下图:
就这样,你还可以在D中调用C,想让C执行D的方法process()只要回传一个reference即可。
而Spring则将接口的概念更加的发扬光大,很多人接触Spring就知道一个概念依赖注入,如果
事情,完全由你自己决定,这是一个很伟大的思想,不过是把接口与实现更加测地的分离了,这
样你再也不遇到因为包依赖关系导致的编译错误,Spring的ApplicationContext与
XMLBeanFactory对象帮你自动实现了包依赖解耦。
最后你会发现,接口本质上不过在回调函数之上批了一件华丽的外衣,想当初WIN32 API的年
代,只有Callback这种东西真的满天飞,而且现在还在飞!
㈨ 写java事件有没有其他办法不用实现接口的所有方法啊
只需要继承相应的适配器就可以了,比如implements ActionListener
可以写为 extends ActionAdapter
ActionAdapter 是 java提供的,它已经实现了ActionListener接口并用花括号概念实现了其中的方法,使用时直接继承然后覆盖要使用的方法即可.
常用的Listener都有相应的适配器类,如WindowsListener则为WindowsAdapter
㈩ java中,有个特例,普通类可以不用重写接口所有方法,大家看看。
equals方法Object里面有,实现这个接口的匿名内部类也就是创建一个这个实现接口的子类,而任何类都继承Object,所以不重写就是从Object继承了,当然你也可以重写。