zoukankan      html  css  js  c++  java
  • Java学习笔记#多态

    多态:指的是同一个方法调用,由于对象不同,可能会有不同的行为。(现实生活中,同一个方法,具体的实现会不一样)

    要点

    1.多态是方法的多态,不是属性的多态。(多态与属性无关)。

    2.多态的存在有三个必要条件(继承、方法重写、父类引用子类对象)。

    3.父类应用指向子类对象后,用改父类引用子类重写的方法,此时多态就出现了。

    tips

    #重写是方法名相同,参数个数或类型不同,重写是方法名和函数相同,里面的方法不同#

    老师讲解的例子(其中包含转型,向上转型和向下转型):

     1 package cn.sxt.oo2;
     2 
     3 /**
     4  * 
     5  * 测试多态
     6  * @author xingzhuan
     7  *
     8  */
     9 public class TestPolym {
    10     public static void main(String[] args) {
    11         Animal a = new Animal();
    12         animalCry(a);
    13         Dog d= new Dog();
    14         animalCry(d);
    15         
    16         Cat c = new Cat();
    17         animalCry(c);
    18         
    19         Animal q = new Cat();//自动向上转型
    20         animalCry(q);
    21         
    22         Cat q1 = (Cat)q;    //强制向下转型
    23         q1.miao();            //q是Animal,q1是Cat
    24         
    25         //Dog d2 = new Dog();
    26         //Cat c2 = (Cat)d2;
    27         //c2.shout();
    28         
    29     }
    30     
    31     static void animalCry(Animal a) {
    32         a.shout();
    33     }
    34 }
    35 
    36 class Animal{
    37     public void shout() {
    38         System.out.println("有动物吗?吱一声!");
    39     }
    40 }
    41 
    42 class Dog extends Animal{
    43     public void shout() {
    44         System.out.println("吱吱吱!");
    45     }
    46 }
    47 
    48 class Cat extends Animal {
    49     public void shout() {
    50         System.out.println("嘤嘤嘤!");
    51     }
    52     public void miao() {
    53         System.out.println("喵喵喵");
    54     }
    55 }
  • 相关阅读:
    UVaLive 7362 Farey (数学,欧拉函数)
    UVaLive 7361 Immortal Porpoises (矩阵快速幂)
    UVaLive 7359 Sum Kind Of Problem (数学,水题)
    CodeForces 706D Vasiliy's Multiset (字典树查询+贪心)
    负载均衡服务器
    集群-如何理解集群?
    架构规划
    领域模型
    状态图
    E-R图
  • 原文地址:https://www.cnblogs.com/xingzhuan/p/10441153.html
Copyright © 2011-2022 走看看