Day08 Java面向对象——多态

关键字super

1)super,相较于关键字this,可以修饰属性、方法、构造器
2)super修饰属性、方法:在子类的方法、构造器中,通过super.属性或者super.方法的形式,显式的调用父类的指定属性或方法。尤其是,当子类与父类有同名的属性、或方法时,调用父类中的结构的话,一定要用“super.”
3)通过“super(形参列表)”,显式的在子类的构造器中,调用父类指定的构造器!

任何一个类(除Object类)的构造器的首行,要么显式的调用本类中重载的其它的构造器“this(形参列表)”或显式的调用父类中指定的构造器“super(形参列表)”,要么默认的调用父类空参的构造器"super()"
建议在设计类时,提供一个空参的构造器!否则会报错

多态性

1)多态性的表现:①方法的重载与重写 ②子类对象的多态性
2)使用的前提:①要有继承关系 ②要有方法的重写
3)格式:
<code>Person p = new Man();//向上转型</code>
虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法
4)编译时,认为p是Person类型的,故只能执行Person里才有的结构,即Man里特有的结构不能够调用(解决:使用abstract方法)
子类对象的多态性,并不使用于属性。
5)关于向下转型:①向下转型,使用强转符:()②为了保证不报ClassCastException,最好在向下转型前,进行判断
<code>

if (p1 instanceof Woman) {
    System.out.println("hello!");
    Woman w1 = (Woman) p1;
    w1.shopping();}

</code>

推荐阅读更多精彩内容

  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 666评论 0 2
  • 第四章 面向对象 面向对象思想 面向对象思想的引入前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码...
    chongsheng阅读 226评论 0 0
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 612评论 0 4
  • 私奔啦私奔! 私奔, 一个多么敏感的名词, 一种不被赞同的精神。 比甲骨文还要苍老, 比婴幼儿还要娇嫩。 开出情感...
    一了0820阅读 140评论 14 10
  • 昨夜梦里,我又看见你----婆婆,你在故乡的老屋里,忙忙碌碌地在给我煮吃的。炉火把你的脸映的红红的,忽而,你站起来...
    冰心茉莉阅读 112评论 0 0