简介:
多态是继封装、继承之后,面向对象的第三大特性。
现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。
Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。
Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类的父类类型变量赋值。
多态实例:
package com.多态;
/**
* 多态
* 只能调用父类里的成员变量
* 可以对父类里的方法进行重写
* 编译看左,运行看右
*
*
* instanceof 用来判断类型
*
*/
public class demo01 {
public static void main(String[] args) {
Fu f = new Zi();
System.out.println(f.num); //这里输出的是父类的num值
f.func1(); //这里执行的是子类的方法
if(f instanceof Fu){
System.out.println("我是Fu类型的");
}
else{
System.out.println("我是Zi类型的");
}
}
}
class Fu{
int num = 0;
public void func1(){
System.out.println("我是父类的func1");
}
}
class Zi extends Fu{
int num = 1;
@Override
public void func1() {
System.out.println("我是子类的func1"); //子类对父类的func1方法重写
}
}
I'm so cute. Please give me money.
- 本文链接:http://yoursite.com/2020/04/23/Java%E5%A4%9A%E6%80%81/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions