Java基础学习08
多态的使用及细节(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(); } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人