您现在的位置是:首页 > 编程 > 

Java多态详解

2025-07-26 08:55:39
Java多态详解 一、多态简介1、简介简单地讲:假如人类是学生的父类,小明是一名学生,那么可以说小明既是学生也是人类,一个对象的多种形态,就是多态;一个对象既是其本类,也是其父类。2、格式父类 父类对象 = new 子类();//这本身是一种向上转型、概述父类对象调用的属性是父类的属性,属性是无法重写的;父类对象调用的方法如果没有被子类重写则调用的是父类的方法;父类对象调用的方法如果被子类重写则

Java多态详解

一、多态简介

1、简介

简单地讲:假如人类是学生的父类,小明是一名学生,那么可以说小明既是学生也是人类,一个对象的多种形态,就是多态;

一个对象既是其本类,也是其父类。

2、格式

父类 父类对象 = new 子类();//这本身是一种向上转型

、概述

父类对象调用的属性是父类的属性,属性是无法重写的;

父类对象调用的方法如果没有被子类重写则调用的是父类的方法;

父类对象调用的方法如果被子类重写则调用的是子类的重写后的方法;

父类对象无法调用子类特有的方法;

父类对象可以向下转型为相对应的子类对象,转型后可以的子类对象可以调用子类特有的方法;

可以用“父类对象 instanceof 子类名”得到的布尔值验证是否可以向下转型

二、使用

父类

代码语言:javascript代码运行次数:0运行复制
public class Fu {
    int a = 10;
    public void showA(){
        println(a);
    }
}

子类

代码语言:javascript代码运行次数:0运行复制
public class Zi extends Fu {
    int a = 5;
    @Override
    public void showA(){
        println(a);
    }
    public void showB(){
        println("B");
    }
}

Test测试类

代码语言:javascript代码运行次数:0运行复制
public class Test {
    public static void main(String[] args) {
        Fu fu = new Zi();
        println(fu.a);//10,成员变量无法复写,谁调用,则调用谁的
        Zi zi = new Zi();
        println(zi.a);//5,成员变量无法复写,谁调用,则调用谁的
        //当showA仅在子类中写
//        fu.showA();//错误写法,父类不可调用子类的方法
        //当showA同时写在父类和子类中
        fu.showA();//5此时showA方法被重写,无论是子类还是父类调用的都是子类的方法
//        fu.showB();//错误写法,父类无法调用子类特有的方法
        //可以看出父类只能调用跟自己有关系的方法
        Zi zi1 = (Zi)fu;
        zi1.showA();//5
        zi1.showB();//B
        println(zi1.a);//5
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除变量测试对象javapublic

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1200643.html

相关标签:无
上传时间: 2025-07-23 19:35:08
留言与评论(共有 10 条评论)
本站网友 转向
30分钟前 发表
原始发表:2025-01-06
本站网友 21世纪现代城
7分钟前 发表
使用父类代码语言:javascript代码运行次数:0运行复制public class Fu { int a = 10; public void showA(){ println(a); } }子类代码语言:javascript代码运行次数:0运行复制public class Zi extends Fu { int a = 5; @Override public void showA(){ println(a); } public void showB(){ println("B"); } }Test测试类代码语言:javascript代码运行次数:0运行复制public class Test { public static void main(String[] args) { Fu fu = new Zi(); println(fu.a);//10
本站网友 有偿调查
11分钟前 发表
格式父类 父类对象 = new 子类();//这本身是一种向上转型
本站网友 王小平
23分钟前 发表
分享自作者个人站点/博客
本站网友 锦绣半山御景
15分钟前 发表
Java多态详解 一
本站网友 破绽百出
11分钟前 发表
原始发表:2025-01-06
本站网友 龙庆峡团购
16分钟前 发表
那么可以说小明既是学生也是人类
本站网友 上游
28分钟前 发表
无论是子类还是父类调用的都是子类的方法 // fu.showB();//错误写法
本站网友 来的都是客
7分钟前 发表
简介简单地讲:假如人类是学生的父类