Java基础-11 多态

java-11.jpg

多态: 父类引用类型变量指向了子类的对象或者是接口的引用类型变量指向了接口实现类的对象。 (一个对象具备多种形态)

多态的前提: 必须存在继承或者实现关系。

多态要注意的细节:
1. 多态情况下,子父类存在着同名的成员变量时,默认会访问父类的成员变量。
2. 多态情况下,子父类存在着同名的非静态函数时,默认是访问子类的成员函数。
3. 多态情况下,子父类存在着同名的静态函数时,默认是访问父类的成员函数。
4. 多态情况下,不能访问子类特有的成员。

总结:
多态情况下,子父类存在同名的成员时, 默认都会访问父类的成员.只有存在非静态的
同名函数时,才是访问子类的成员。
编译看左边,运行不一定看 右边
编译看左边: java编译器在编译的时候,会检查引用类型变量所属的类是否具备指定的成员,如果不具备,编译报错。

多态的应用场景

abstract class Animal{

String name;

String color;

static  int age = 10;

public Animal(String name,String color){
    this.name = name;
    this.color = color;
}

public abstract void run();

public static void sleep(){
    System.out.println("动物睡觉...");
}

}

//狗
class Dog extends Animal{

static int age = 20; 

public Dog(String name,String color){
    super(name,color);
}

public  void run(){
    System.out.println(name+"四条腿跑...");
}

public static void sleep(){
    System.out.println("狗在睡觉...");
}

//狗特有的方法
public void bite(){
    System.out.println(name+"咬人");
}

}

class Demo
{
public static void main(String[] args)
{

     Dog d = new Dog("沙皮","棕色");
     d.run();
    Animal a = new Dog("哈士奇","白色");  //多态   父类的引用类型变量指向了子类的对象。
    //System.out.println("年龄:"+ a.age);
    //a.sleep();
    a.bite();
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,789评论 0 11
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,395评论 0 2
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,190评论 0 4
  • 一、继承 当两个事物之间存在一定的所属关系,即就像孩子从父母那里得到遗传基因一样,当然,java要遗传的更完美,这...
    玉圣阅读 1,109评论 0 2
  • 一、多态 1. 概述 理解:多态可以理解为事物存在的多种体(表)现形态。例如:动物中的猫和狗。猫这个对象对应的是猫...
    陈凯冰阅读 371评论 0 1

友情链接更多精彩内容