美文网首页
Java重写的多态

Java重写的多态

作者: 报告老师 | 来源:发表于2021-01-15 21:26 被阅读0次

class Dog{

private String sex="male";

public Dog(String name){

System.out.println(name);

}

public void learning(){

System.out.println("eating...");

}

public void test(){

System.out.println("sssss");

}

}

public class Pepole extends Dog{

public Pepole(Stringname){

super(name);

}

public void learning(){

System.out.println("learning");

}

public void learningtest(){

this.learning();

super.learning();

}

public static void main(String[]args){

Pepole p=new Pepole("co");

Dog d2=new Pepole("cco");//父类引用指向子类对象,向上转型

d2.learning();

d2.test();

Pepole p2=(Pepole)d2;//向下转型

p2.learningtest();

}

}

引用昨天的例子,Pepole继承Dog,当然这两个类都可以分别实例化,方法重写的多态,就是使用父类的引用指向子类(动态绑定)

写法:Dog d =new Pepole()

向上转型:父类引用指向子类对象,向上转型后,父类引用对象(p)只能调用Dog中有的方法,若子类中存在有方法与父类一致,则调用子类的重写后的方法,这样理解:

运行时,父类指向子类,所以执行方法的时候优先执行子类的重写方法

编译时,子类对象赋值给父类引用,从低到高,所以是"向上转型"

向下转型:将向上转型的的对象强制转换回来,只能转曾经向上转过的对象

写法:Pepole p2=(Pepole)d2

如果d2对象不是指向子类的父类引用对象会运行报错,可以用通过instanceof判断对象的指向,如果指向子类则执行向下转型,否则不执行

相关文章

  • 多态

    优秀文章 菜鸟教程 > Java 多态 说明 多态的前提必须满足继承和重写; 重写 普通手机类: 坏手机类: 现在...

  • Java多态相关

    多态的三个条件: 1、要有继承 2、要有重写 3、父类引用指向子类对象[Java多态之方法的重写](http://...

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

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

  • Java重写的多态

    class Dog{ private String sex="male"; public Dog(String n...

  • overload与override区别

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

  • java中实现多态的机制

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

  • JVM方法调用

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

  • Java重写与重载

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

  • java面试基础

    1. 对java多态的理解 多态变现了事物的多种状态。 多态存在的三个必要条件 一、要有继承; 二、要有重写; 三...

  • 多态

    1、在Java里面,也是存在多态的,只要全部符合下面这三种情况,就是多态 1)有继承 2)有方法重写 ...

网友评论

      本文标题:Java重写的多态

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