博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的多态
阅读量:2442 次
发布时间:2019-05-10

本文共 1429 字,大约阅读时间需要 4 分钟。

1.1 多态概述

多态是继封装、继承之后,面向对象的第三大特性。

现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。

Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。

1.2 多态的定义与使用格式

多态的定义格式:就是父类的引用变量指向子类对象

父类类型  变量名 = new 子类类型();

变量名.方法名();

 

A:普通类多态定义的格式

父类 变量名 = new 子类();

如:class Fu {}

class Zi extends Fu {}

//类的多态使用

Fu f = new Zi();

B:抽象类多态定义的格式

抽象类 变量名 = new 抽象类子类();

如:abstract class Fu {

         public abstract void method();

     }

class Zi extends Fu {

public void method(){

      System.out.println(重写父类抽象方法);

}

}

//类的多态使用

Fu fu= new Zi();

 

C:接口多态定义的格式

接口 变量名 = new 接口实现类();

如: interface Fu {

     public abstract void method();

}

class Zi implements Fu {

     public void method(){

              System.out.println(重写接口抽象方法);

}

}

//接口的多态使用

Fu fu = new Zi();

 

1.2.1 案例代码:

package com.itheima_01;/* * 多态的前提: * 	子父类的继承关系 * 	方法的重写 * 	父类引用指向子类对象 *  * 动态绑定:运行期间调用的方法,是根据其具体的类型 *  *  *  *  */public class PoymorphicDemo {	public static void main(String[] args) {		/*Cat c = new Cat();		c.eat();*/				//父类引用 Animal a		//指向	 =		//子类对象 new Cat()				Animal a = new Cat();		a.eat();			}}class Animal {	public void eat() {		System.out.println("吃东西");	}}class Cat extends Animal {	public void eat() {		System.out.println("猫吃鱼");	}}

1.1 多态成员的特点

A:多态成员变量

当子父类中出现同名的成员变量时,多态调用该变量时:

编译时期:参考的是引用型变量所属的类中是否有被调用的成员变量。没有,编译失败。

运行时期:也是调用引用型变量所属的类中的成员变量。

简单记:编译和运行都参考等号的左边。编译运行看左边。

B:多态成员方法

编译时期:参考引用变量所属的类,如果没有类中没有调用的方法,编译失败。

运行时期:参考引用变量所指的对象所属的类,并运行对象所属类中的成员方法。

简而言之:编译看左边,运行看右边

转载地址:http://pjjqb.baihongyu.com/

你可能感兴趣的文章
增加一个判断内存变量存在的函数 (转)
查看>>
JSR227:J2EE数据绑定及数据访问标准 (转)
查看>>
Jbuilder8开发J2ee学习笔记(2) (转)
查看>>
Makefile编写小说(一) (转)
查看>>
运用VC或Java对Office进行编程操作 (转)
查看>>
Linux Shell 裡一些很少用到卻很有用的指令 (转)
查看>>
第10章 模型管理视图 (转)
查看>>
第7章 活 动 视 图 (转)
查看>>
“管家婆”软件用于维修管理 (转)
查看>>
第13章 术 语 大 全 (8) (转)
查看>>
第13章 术 语 大 全 (9) (转)
查看>>
人月神话读书笔记(二) (转)
查看>>
A Brief Look at C++ 中文版 (转)
查看>>
JBuilder Editor中光标不能正确定位问题的解决 (转)
查看>>
XML加ASP实现网页“本地化” (转)
查看>>
Java中的异步网络编程 (转)
查看>>
用于核心模式驱动程序的网络体系结构(1) (转)
查看>>
More Effective C++ 条款20 (转)
查看>>
一个程序员的爱恋 (转)
查看>>
足球战术->边锋之Decorator篇 (转)
查看>>