《java入门第一季》之面向对象(重头戏多态)
来源:互联网 发布:摄影后期软件 编辑:程序博客网 时间:2024/05/18 12:32
接下来介绍java第三大特性——多态性
/*多态:同一个对象(事物),在不同时刻体现出来的不同状态。举例:猫是猫,猫是动物。水(液体,固体,气态)。多态的前提:A:要有继承关系。B:要有方法重写。其实没有也是可以的,但是如果没有这个就没有意义。动物 d = new 猫();d.show();动物 d = new 狗();d.show();C:要有父类引用指向子类对象。父 f = new 子();用代码体现一下多态。多态中的成员访问特点:A:成员变量编译看左边,运行看左边。B:构造方法创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。C:成员方法编译看左边,运行看(右边)。D:静态方法编译看左边,运行看左边。静态和类相关,算不上重写,所以,访问还是左边的然而由于成员方法存在方法重写,所以它运行看右边。*/class Fu {public int num = 100;public void show() {System.out.println("show Fu");}public static void function() {System.out.println("function Fu");}}class Zi extends Fu {public int num = 1000;public int num2 = 200;public void show() {//对父类的方法重写System.out.println("show Zi");}public void method() {//自己的方法System.out.println("method zi");}public static void function() {//静态方法也要“重写”,其实不算是重写System.out.println("function Zi");}}class DuoTaiDemo {public static void main(String[] args) {//要有父类引用指向子类对象。//父 f = new 子();Fu f = new Zi();System.out.println(f.num);//找不到符号,父类中没有num2//System.out.println(f.num2);f.show();//找不到符号,父类中没有method()//f.method();f.function();}}执行结果是:100
show Zi
function Fu
多态的弊端:
/*多态的弊端:不能使用子类的特有功能。*/class Fu {public void show() {System.out.println("show fu");}}class Zi extends Fu {public void show() {System.out.println("show zi");}public void method() {System.out.println("method zi");}}class DuoTaiDemo3 {public static void main(String[] args) {//测试Fu f = new Zi();f.show();f.method();//由于父类中没有method()。所以报错。错误描述:找不到符号}}那么应该怎么解决这个问题呢?向下转型。会在下一篇文章中对向下转型做出介绍。
1 0
- 《java入门第一季》之面向对象(重头戏多态)
- 《java入门第一季》之面向对象(重头戏继承来了)
- 《java入门第一季》之面向对象(匿名对象)
- 《java入门第一季》之面向对象
- 《java入门第一季》之面向对象(多态向下转型)
- 《java入门第一季》之面向对象(多态练习)
- 《java入门第一季》之面向对象多态面试题(多态收尾)
- 《java入门第一季》之面向对象(构造方法)
- 《java入门第一季》之面向对象(成员方法)
- 《java入门第一季》之面向对象(static关键字)
- 《java入门第一季》之面向对象(继承)
- 《java入门第一季》之面向对象(继承)
- 《java入门第一季》之面向对象(继承总结)
- 《java入门第一季》之面向对象(final关键字)
- 《java入门第一季》之面向对象(谈谈接口)
- 《java入门第一季》之面向对象(接口收尾)
- 《java入门第一季》之面向对象(包概述)
- 《java入门第一季》之面向对象(面向对象案例详解)
- UiTextField rightView 代替clearButton 自定义clearButtton
- 【JAVA笔记】- 自己常用的几个Eclipse快捷键
- RGB颜色转换算法C语言实现
- list元素
- 大型网站架构技术
- 《java入门第一季》之面向对象(重头戏多态)
- 类似70度平台的软件汇总
- struts2--开发模式控制台错误信息
- 需求工程师的职责:他们的主要任务是什么
- java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lan
- 下载linux系统
- org.springframework.beans.NotWritablePropertyException
- JAVA虚拟机之——类加载机制
- iOS多线程(1)基本概念