美文网首页
JAVA学习:区分重写,重载和多态。

JAVA学习:区分重写,重载和多态。

作者: IO_Vnee | 来源:发表于2017-10-19 16:21 被阅读0次

   首先来看概念区分:

重写是子类对父类的允许访问方法过程实现重新的编写,返回值和形参都不变。

重载是在一个类里面方法名字相同,而参数不同。返回值的类型可以是相同的也可以是不同的。

多态是同一个行为具有多个不同的表现形式或形态的能力。

深入解析:

重写:重写也叫做覆盖,是指父类与子类之间的关系。在子类继承父类的过程中,如果子类的方法名如父类的方法名是相同的,那么子类就不能继承父类的方法,此时,叫做子类重写或者覆盖了父类的方法。通过重写,可以使一个方法在不同的子类中表现出不同的行为。

如果子类没有重写父类的方法,那么子类在使用该方法时还是用的父类的方法,并且可以直接调用。

Public class Animal{

void bark(){

*************

}

}

public class  Cat  extends Animal{

void  eat(){

&&&&&&&&&

}

}

pubic class Dog extends Animal{

void eat(){

$$$$$$$$$$4

}

}

main函数

Cat  cat=new Cat();

Dog dog=new Dog();

cat.bark();

cat.eat();

dog.eat();

输出结果:**************

                  &&&&&&&&

                 $$$$$$$$$$

注意:在进行方法的重写时,子类不能够覆盖父类中声明时final或者是static的方法。

          子类的方法声明要和父类的相同,在进行重写的时候。

重载:调用方法时以 对象.方法(有无参数)来调用方法。虽然方法的名字相同,但是调用的方法时不同的。每个被重载的方法必须有一个独一无二的参数列表用来区分是用到了那个方法。在方法重载中,返回值的类型不能够作为是否重载的标志。如:void gets()和int gets()当调用gets()这个方法时,编译器无法识别具体调用的是哪个方法。

多态:多态是基于重写重载之上的,是JAVA的三大特性之一。

比如:

class  Shuben{

void   function(){

************

}

class    Yuwen  extends  Shuben{

void function(){

&&&&&&&&&&&&&&

}

void    color(){

^^^^^^^^^^^^

}

main?

Shuben   a=new Yuwen()

a.function();

a.color()://这段如果有,则报错。如果没有继续执行出结果。

}

运行结果:*************

注释:在使用多态来调用方法时,先检查父类中有没有该方法,如果没有,则报错,编译不能继续运行。如果有,则再进行调用对应子类中的方法。如果父类中有该方法则直接调用,子类中没有或者没被重写则直接调用。

成员变量,多态后,还都是父类的数值。

成员方法多态后如果子类有重写该方法则是子类的数值,如果没有或者没有重写该方法,则是父类的数值。静态方法调用后还都是父类的数值。

相关文章

  • JAVA学习:区分重写,重载和多态。

    首先来看概念区分: 重写是子类对父类的允许访问方法过程实现重新的编写,返回值和形参都不变。 重载是在一个类里面方...

  • JAVA基础之重写和重载

    重写和重载详细区分: Java 重写(Override)与重载(Overload) | 菜鸟教程 核心区分:重写(...

  • JVM方法调用

    方法重载和方法重写多态是面向对象程序设计的重要特性,方法重载和方法重写是Java语言实现多态的主要形式。方法重载指...

  • Java 学习2——Overload和Override的区别

    方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。 重写(Overri...

  • java中实现多态的机制

    方法的重写和重载是Java多态性的不同表现. 重写Overriding是父类与子类之间多态性的一种表现 重载Ove...

  • 面向对象的基本原则

    基本要素: 封装 , 继承 , 多态 多态 : 注意重写和重载 重写: 子类重写父类的方法 重载: 同样的方法名 ...

  • Java重写与重载

    方法的重写和重载是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式...

  • Java重载与重写

    简言 重写和重载都是面向对象多态的一种表现,重载是编译时多态,重载是运行时多态. 重载 重载(Overloadin...

  • overload与override区别

    overload与override 方法的重写和重载是Java多态性的不同表现。重写是父类与子类之间多态性的一种表...

  • OOP(多态,重载,重写,虚方法,密封类)

    多态 学习OOp多态*1.方法重载*2.方法重写*3.里氏替换原则**方法重载:构造函数就属于特殊的方法重载*方...

网友评论

      本文标题:JAVA学习:区分重写,重载和多态。

      本文链接:https://www.haomeiwen.com/subject/idnruxtx.html