首页 > 编程语言 >Java基础学习08

Java基础学习08

时间:2023-01-28 15:55:07浏览次数:37  
标签:Java 子类 08 多态 学习 persons Student new 父类

多态的使用及细节(2023-01-28)

1.对象多态 :对象多态涉及到向上转型和向下转型,首先对象多态格式为   父类类型 父类引用 = new 子类(向上转型)运用此方法可以更方便维护代码
比如当需要向函数里面传入参数,而参数的类型是类的时候,可以通过向上转型的方法将所有的子类对象全部用父类代替
public void Action(Animal animal ,Food food)代替public voidAction(Dog dog ,Bone bone)。向上转型可以调用父类的所有成员,但是不能调用子类的特有成员
2.向下转型即类似于强转,当子类里面有一些特有的方法并且需要调用这些方法的时候就需要将父类强转为子类
Student student=(Student) persons[i];
3.AA instanceof BB 用来判断AA的运行类型(编译类型看等号左边,运行类型看右边)是不是BB类型或者BB的子类型
4.属性没有重写一说,属性的值看编译类型。
示例动态数组代码如下:
package JavaLearn.PolyArray01;

public class PolyArray {
    public static void main(String[] args) {
        Person[] persons=new Person[5];
        persons[0]=new Person("jack",20);
        persons[1]=new Student("tom",21,100);
        persons[2]=new Student("smith",22,56);
        persons[3]=new Teacher("scoot",35,20000);
        persons[4]=new Teacher("edith",65,30000);
        for(int i=0;i<5;i++){
            System.out.println(persons[i].say());
            if(persons[i] instanceof Student){
                Student student=(Student) persons[i];
                student.study();
            }else if(persons[i] instanceof Teacher){
                Teacher teacher=(Teacher) persons[i];
                teacher.teach();
            }
        }
    }
}

 

标签:Java,子类,08,多态,学习,persons,Student,new,父类
From: https://www.cnblogs.com/copyjames/p/17070456.html

相关文章

  • 对于Java平台的理解
    谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗? Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一处编译,处处运行”(Writeonce,runanyw......
  • java书写并建立txt日志文件
    /*建立txt,并写入日志文件*/publicstaticvoidlogWrite(Stringdata,Stringname){//System.out.println("写入"+name+"开始");Calend......
  • 【Python学习002】函数参数
    我们的gzh是【朝阳三只大明白】,满满全是干货,分享近期的学习知识以及个人总结(包括读研和IT),希望大家一起努力,一起加油!求关注!!概述函数是组织好的、可重复使用的,用来实现单一,或......
  • java 环境配置(一) jdk8 安装
    1.下载JDK Oracle官网:Oracle|CloudApplicationsandCloudPlatformjava  下载  找到想要下载的版本这里我选择的是老版本java8下载完成   ......
  • 《如何高效学习》二
    一.这本书主要讲了整体性学习对学习的好处以及怎样学才能掌握知识。接着下面介绍了整体性学习的顺序:获取,理解,拓展,纠错,应用。  1.获取信息的三个主要目标:简化,容量,速度......
  • 【学习笔记】BSGS与原根学习笔记
    参考资料:OI-Wiki\(\text{BSGS}\)(\(\text{Big-Step-Giant-Step}\))最基本的线性同余方程:\[ax\equivb\pmodp\]可以转化成不定方程:\[ax+py=b\]使用扩展欧几里得算法......
  • 后端跨域问题导致java.io.IOException: UT010029: Stream is closed解决办法
    转载自:https://blog.csdn.net/qq_45925197/article/details/126708024背景下载文件压缩成zip包接口,postman自测没问题,但在和前端联调的时候前端就会出现如下跨域的报错......
  • 数学建模学习——Day02
    一、Matlab基础知识入门1.每行语句后面加上英文分号,表示不显示运行结果,分号也表示换行2.多行注释:选中要注释的语句,CTRL+R3.取消注释:选中要取消注释的语句,CTRL+T4.cle......
  • JavaScript 获取用户选择的文本
    constgetSelectedText=()=>window.getSelection().toString();getSelectedText();JQuery实例:$(function(){constgetSelectedText=()=>window.getSelect......
  • # markdown学习
    1.标题设置一级标题:(一个#号)(空格)(标题内容)二级标题:(两个#号)(空格)(标题内容)三级标题:(三个#号)(空格)(标题内容)最多支持到六级标题样式如下:一级标题二级标题三级标题 2.字......