Java笔记-多态

Java自学---理解多态

介绍

父类引用指向子类对象。出现相同类型的变量、调用同一个方法时呈现出多种不同的行为特征。

// 格式
父类名称  对象名=new 子类名称();
或者
接口名称  对象名=new 实现类名称();

通过一个例子来分析:


public class Multi {
    public static void main(String[] args) {
        Fu obj = new Zi();
        System.out.println(obj.num);
        obj.method();
    }
}
//父类
public class Fu {
    int num = 10;
    public void method(){
        System.out.println(num);
    }
}
//子类
public class Zi extends Fu{
    int num = 20;
    @Override
    public void method(){
        System.out.println(num);
    }
}
// 结果
10
20

obj的编译时类型为—Fu,运行时类型为—Zi
引用变量在编译阶段只能调用其编译时所具有的方法,但运行时则执行它运行时类型所具有的方法。因此,obj在编译阶段调用的是Fu的method方法,而在实际运行后,由于Zi类重写了method方法,所以运行结果是Zi类的method方法得出的结果。
如果Fu类中没有method方法,而子类中有method方法,该段代码会在编译时出错。
与方法不同,对象的实例变量不具备多态性。如Fu类中定义的num=10,Zi类中定义的num=20,引用变量obj在程序中输出num实例变量时,输出的是Fu类的实例变量。

口诀:
引用变量------编译看左边,运行看右边
实例变量------编译看左边,运行看左边
“左”指的是等号左边的类型

若需要引用变量调用它运行时类型的方法,则可使用类型转换运算符进行强制类型转换—(type)variable,将variable转换成type类型。
不过有几点需要注意:

  • 数值类型和布尔类型之间不能进行类型转换。
  • 引用类型之间的转换只能在具有继承关系的两个类型之间进行,如上例,可进行转换:Zi 对象 = (Zi)Fu的对象。

instanceof运算符

考虑到强制类型转换可能出现异常,因此进行强制类型转换之前应先通过instanceof运算符来判断是否可以成功转换,保证程序健壮性。

//格式
(引用类型变量   instanceof   类/接口),判断前面的对象是否是后面的类,或者其子类、实现类的实例。是,返回true,否则返回false。
例    if(obj   instanceof   Zi){//...}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 宋红康先生的Java笔记Typora是一份非常有价值的Java学习资料。Typora是一种Markdown编写工具,非常适合于码字和笔记整理。是一款非常支持运用Java的软件。宋红康先生的Java笔记,是以Typora为载体,对Java技术进行深度解析和介绍的学习资料。 宋红康先生的Java笔记Typora,内容丰富,涵盖了JavaSE、JavaEE、Java框架等多方面的知识点。除了传统的类和对象、继承和多态Java基础语法外,Typora笔记还涉及了Java I/O、异常处理、集合框架、多线程、JDBC等重要的Java应用方面的知识,能够让读者更好地掌握Java编程的技巧。 此外,宋红康先生不仅将Java的技术点进行了详细讲解,还给出了很多实际的代码例子和实战项目,让读者能够更好地理解Java的应用场景和解决问题的方法。同时,宋红康先生的Java笔记Typora还提供了非常全面的Java学习资源,包括经典的Java书籍、Java论坛、Java常用工具等,可供读者深度学习和研究Java技术。 总之,宋红康Java笔记Typora是一份非常有价值的Java学习资料,无论是初学者还是有一定编程经验的程序员都可以从中获得很多启发和帮助。如果你想要快速入门Java编程,那么Typora笔记会是一个非常不错的选择。 ### 回答2: 宋红康java笔记typora是指宋红康在学习Java编程语言的过程中,记录笔记的工具为Typora的事情。Typora是一款轻量级的Markdown编辑器,可以帮助用户快速高效地编辑和排版文档。 宋红康是一位资深的Java程序员,对Java编程语言非常熟悉,他利用Typora这一工具来记录自己的学习笔记。Typora简单易用,支持常用的Markdown语法,让宋红康可以专注于记录自己对Java的理解和加深对Java编程语言的认识。 宋红康的Java笔记包括对Java语法、面向对象编程、Java开发工具、Java Web开发、Java框架、数据库编程等方面的知识点的记录和总结。这些知识点通过Typora的排版功能,呈现出来非常清晰,易于查看和理解。 总之,宋红康java笔记typora是一种高效的学习方式,它不仅可以帮助学习者快速记录和总结知识点,还可以提高学习效率,让学习更加轻松愉快。 ### 回答3: 宋红康Java笔记Typora是一本非常优秀的Java编程入门教材。Typora是一款兼容多种操作系统的软件,它极大地方便了笔记的编辑和共享传递。宋红康Java笔记中的内容相当全面,从Java程序开发的基础语法入手,依次阐述了Java高级程序开发中的各项难点,同时引导读者通过自主练习来深入理解与掌握Java编程技能。 宋红康Java笔记在内容上结构合理、连贯易懂,将Java程序设计的复杂知识点分解为逐步深入的章节内容,每个章节都有相关的练习题来帮助读者巩固所学的知识点。此外,该笔记还提供了详细的代码实例,让读者可以更加清晰的了解Java编程的执行过程,同时加深对程序设计思路的理解。 总之,宋红康Java笔记Typora是一本很好的Java编程入门教材,如果你对Java编程有困惑,又想全面系统地了解Java编程,那么这本笔记一定会给你带来很大的收获。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值