nexus 5nexus5官方刷机包大师可以刷吗

Java中接口的作用是什么??跪求
全部答案(共1个回答)
首先是申明一个接口,关键字:interface,语法:
public interface MyInterface
import java.util.S
public static void main(String[] args){
接口(interface )
如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。
接口是抽象方法和常量值的定义...
这个无非就是继承后重载方法嘛..
abstract class shape
abstract double getArea();
谁住过大加那利岛拉斯帕尔马斯Casa Ilona Alcaravaneras,是否推荐?
答: 这个要设计到JNI的开发,就是用Java来调用C语言的函数库,还要编写缓冲器来解决传输问题,还有就是网络协议一定要了解,做的时候要用多线程来控制你所有的缓冲器,...
答: 所谓的网络编程,不论c还是java,本质上都是通过socket进行数据传输;
一般情况下可以使用的传输协议有tcp、udp、ftp等等,这些协议为网络变成提供...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区Java中接口的清晰+形象理解 - 博客频道 - CSDN.NET
ltx06的专栏
分类:设计模式JAVA
大家都知道,在Java应用开发中,要“面向接口编程”,那么,对于接口的清晰理解尤为重要,尤其是对设计模式的学习。
在网上搜索了很多关于接口的定义,但是认识接口,还得从多个方面去理解,尤其是对接口的形象理解。
下面是摘自知乎和研磨设计模式:
接口就是个招牌。
(比如接口是饭店招牌,你进去都会看到挂在墙上或放在桌上的菜单,但至于同名菜式和同类饭店的味道是不是完全一样,服务是不是好,卫生够不够格,就看各家店的具体实现了。)
比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你就知道今天中饭有着落了。
KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿(实现接口)。
(挂了KFC的招牌,我们不用进去就知道他家卖哪些食物,就可以直接去点炸鸡腿、黄金烤鸡腿堡。没有挂这个招牌,就算卖的东西和KFC一模一样,我们不进去看菜单就不会知道。)
那么为神马我们要去定义一个接口涅,这个店可以直接卖炸鸡腿啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不能直接简单粗暴的冲进去叫服务员给两个炸鸡腿了。
要么,我们就要进去问,你这里卖不卖炸鸡腿啊,卖不卖汉堡啊,卖不卖圣代啊(这就是反射)。很显然,这样一家家的问实在是非常麻烦(反射性能很差)。
要么,我们就要记住,xx路108号卖炸鸡,xxx路45号卖炸鸡(硬编码),很显然这样我们要记住的很多很多东西(代码量剧增),而且,如果有新的店卖炸鸡腿,我们也不可能知道(不利于扩展)。
接口只是一个规范,所以里面的方法都是空的。
假如我开了一个宠物粮店,声明所有宠物都可以来我这里买粮食,这就相当于一个接口,
public interface PetRestaurant {
public void buy();
当一只狗看到了,知道自己是宠物,所以它去实现这个接口
public class DogPet implements PetRestaurant {
public void buy() {
System.out.println(&我是狗,我要买狗粮&);
当一只猫看到了,知道自己也是宠物,所以也去实现这个接口
public class CatPet implements PetRestaurant {
public void buy() {
System.out.println(&我是猫,我要买猫粮&);
当狗和猫来我的店之前,我是不知道他们到底是什么,但是当他们来到我的店,我就知道一个要猫粮食,一个要狗粮食。因为他们都实现了 我这个接口,都可以买。下面这个类相当于一个接待顾客的类,即店小二,他接待所有实现了我这个宠物店接口的动物,传进来一个PetRestaurant
类型的宠物,注意,这个PetRestaurant 是接口
public class test {
public void buy(PetRestaurant pet)
pet.buy();
好了,这个时候我这个老板出现了,我可以给他们卖粮食了,相当于测试类
public class Tests {
public static void main(String[] args) {
PetRestaurant dog = new DogPet(); //实例化一个狗,相当于把狗顾客实例化
PetRestaurant cat = new CatPet();//实例化一个猫,相当于把猫顾客实例化
test t = new test(); //实例化一个店小二
t.buy(cat); //把猫交给店小二
t.buy(dog); //把狗交给店小二
这样运行的结果就是
我是猫,我要买猫粮
我是狗,我要买狗娘
你知道吗,整个过程我这个店主其实根本不知道来的到底是猫是狗还是其他什么,我只要有一个店小二,把这些来的不知什么动物都全部交给店小二,店小二就知道怎么去卖了,因为这些狗啊猫啊都实现了我这个宠物店的接口,而店小二就负责接待所有实现了我这个接口的动物。这就有一个好处,假如明天来了一头小猪,只要它实现了我这个接口,我只管交给店小二处理就OK了,我这个店小二根本不需要变化,我这个店主也只需要实例化一下这个动物就OK
你想,假如没有接口,会怎么办,来一个猫,我要去创造一个猫,还要实例化,来一只狗,我要创建一只狗,同样要实例化,还要配备专门的店小二去接待,就会相当麻烦。
排名:第11405名
(60)(69)(19)(13)(13)(17)(138)(3)(10)(16)(9)(3)(3)(1)(53)所有回答(3)
因为sort方法不(能)依赖你的类的实现,所以不能进行 ((OP_s_Class)item).compareTo(...)的调用,而只能用((Comparable)item).compareTo(...)的调用。因为要用OP_s_Class就需要在编译sort的代码时import&OP_s_Class,这是不可能的。但import&Comparable则会轻松愉快。
翻译真蛋疼。 &有人认为,将sort方法的参数定义为Comparable[]类型,就可以在试图使用*无素未实现Comparable接口的数组*作为参数进行调用时引发编译器错误(从而在编译时阻止这种错误调用),但事实并非。。。。"
JAVA不熟,不太清楚sort方法的具体定义,但这段的意思是想说明,如果你的数组元素没有实现Comparable接口,却试图调用sort方法,不会引发编译时错误,但会引发运行时错误。(以下为我个人意见不是这段话的内容)之所以sort允许使用非Comparable类型的数组进行调用,是因为非Comparable类型的数组可能存在着Comparable的内容。 比如基类Person类是不能比较的,但派生类Student类可以比较,这时构造一个Person类的数组,然后把Student实例填进去,然后拿这个数组排序是没有问题的。
问题1:为什么不能在类中提供方法,而必须实现Comparable接口?
这个答案很简单,实现接口必须实现comparaTo()方法。
因为Arrays.sort(Object[] objs)方法它内部必须把Object数组里面强制转换为Comparable类型,才可以调用comparaTo()方法。而你仅仅在类中写ComparaTo()方法,那它怎么调?你传进去的是Object而不是其他,Object没这个方法。
问题2:为什么不用Comparable数组作为参数。
首先这个我只是我个人猜测。
为什么不传入Comparable而传入Object?
首先我们知道Comparable接口是有一个泛型的,而且comparaTo(T o) 接收的也是泛型
public interface Comparable&T& {
public int compareTo(T o);
但是泛型是JDK1.5才出来的特性,那么在Comparable接口之前是什么样子的呢?这这样的
public interface Comparable {
public int compareTo(Object o);
这里传入的参数是基类Object。而他为什么不直接传入Comparable c作为参数呢?这我想是一个面向对象的问题。
compareTo 是 &相对于&的意思。 paraTo(object) 则对象相对于对象,对象与对象的相对比较。
那如果传入的是Comparable接口,则是pareTo(comparable),这是什么?接口跟接口比较?很明显上面的更贴切,更符合面向对象规则。
楼上两位都说的很好。
楼主对面向对象的理解还不够深。
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 nexus5刷机教程 的文章

 

随机推荐