我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合公式 > 方法多态 >

JAVA里多态和接口有什么区别?

归档日期:05-30       文本归类:方法多态      文章编辑:爱尚语录

  感觉两者都是A类列出些方法,由B类或C类来进行重写或重载这两个方法?感觉除了写法不一样外,功能用途都一样,那两者有何区别?我该什么时候用接口什么时候用多态?麻烦不要网上找答案,麻烦...

  感觉两者都是A类列出些方法,由B类或C类来进行重写或重载这两个方法?感觉除了写法不一样外,功能用途都一样,那两者有何区别?我该什么时候用接口什么时候用多态?

  麻烦不要网上找答案,麻烦用些通俗易懂的方法表达一下展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部多态是面向对象编程的特征之一,而接口是一系列方法的声明,是一些方法特征的集合,有特定的语法和结构,这两者根本不是同一类型和层次上的概念。接口毫无疑问可以体现出多态性来,但是多态性未必一定要用接口,只要存在方法的重写、重载与动态连接即可体现多态性(如存在继承关系的类之间),所以,不存在“什么时候用接口什么时候用多态”的问题,程序里写的具体代码只可能是接口,只是这代码可能会体现出多态性而已,两者可以在不同的概念层次上并存,不存在冲突。

  简而言之,你可以在程序里用代码定义一个接口,但是你不能定义一个多态,多态只是对你代码特征的一种描述,一种概念上的抽象和总结。更多追问追答追问但是多态性未必一定要用接口,只要存在方法的重写、重载与动态连接即可体现多态性(如存在继承关系的类之间)

  这句话能否举个例子呢?现在对你整段话半懂半不懂,多态里,特别是最后一句话不太懂追答1、例如A类被几个子类继承,子类都重写了A类中的某个方法M,调用A.M的时候就会根据创建A的时候使用的是具体哪个子类而调用相应子类中的方法M,这就体现了程序的多态性。

  2、接口就像类一样,是java语言中的一种语法定义(用关键词interface);但是多态是对程序运行特征的一种描述,跟语法没关系,没有对应“多态”的语法定义关键词,这么说你明白了么?追问那其实接口是不是也是多态的一种表现?除了extends外还可以用implements?

  多态的意思是例如动物,它有可能是猫,有可能是狗,或者是牛羊猪等,当需要使用时就 动物 A=NEW 猫这样来调用?只要是猫的A方法能重写动物里的A方法这就是多态?而且多态主要目的是方便日后修改?

  展开全部//接口是一类对象的抽象,比如交通工具,不论是汽车还是飞机都是交通工具,他们可以有一个共同的方法run();

  //虽然调用的都是vehicle这个接口的run方法,但是由于指向的对象不同(而对象都实现了这个接口并且重写了其中的run方法,所以输出的结果是不一样的,这就是多态。

  //多态并不只是通过接口才可以实现,父类也可以、实际上接口也是类,只不过是一个所有方法都是抽象方法的类,是一个完完全全的抽象类。

  //3:父类引用指向子类对象,就像上面例子中定义了一个vehicle对象,实际new 的是Car或者Plane

  虽然可以写Car car = new Car();然后car.run();来调用重写接口里的方法,但为了以后修改方便,所以就写成Vehicle vehicle = new Car();?而多态的意思就是vehicle它可以是Car或Plane,也可以是船,单车等?他有多种形态,所以以后编程,遇到这种情况就应该多用多态,因为方便日后修改?

本文链接:http://renfriends.com/fangfaduotai/467.html