找一个Java游戏里面有九尾狐_Javase中多态polymorphic的简单介绍

-------------多态-----------------

(1)面向对象三大核心思想;

1、封装 2、继承 3、多态

(2)多态定义:父类的引用指向子类的对象。

(3)引用指的是父类声明的一个引用型变量,变量有: 1、成员变量

2、静态变量

3、构造方法的变量

4、普通方法的变量

5、声明就用的变量

(4)变量的声明一般来说需要三步:声明数据类型 声明变量名 赋值

但是严格来讲为两步:声明数据类型 声明变量名

(5)赋值有两种情况:1、父类型声明,赋值一个父类型的引用值

父类型声明,赋值一个子类型的引用值

2、多态

(6)里氏替换原则:能使用父类的地方,一定可以使用子类

(7)多态的概念:

编译阶段,将父类的属性,生成属性列表,编译时绑定

运行阶段,将子类生成一个对象,子类也有自身属性列表,运行时绑定

程序运行时,通过父类的属性去调用子类对象的属性(特指成员方法)

(8)具体调用:运行阶段

1、遍历父类的属性列表

2、遍历子类的属性列表

3、如果子类有相同,就调用子类的,没有就调用父类的

4、如果父类没有所指属性,直接报错,子类中不用去

public classPoly01{public static voidmain(String[] args){

Big a= newBig();

a.eat();//输出父类

Big b = newSmall();

b.eat();//输出子类//b.happy();//报错:找不到符号

b.cry();//输出父类

}

}classBig{public voideat(){

System.out.println( "大的吃小的");

}public voidcry(){

System.out.println( "大的在哭");

}

}classSmall extends Big{public voideat(){

System.out.println( "小的不让大的吃");

}public voidhappy(){

System.out.println( "小的很高兴");

}

}classTiny extends Big{public voideat(){

System.out.println( "很小的");

}

}

多态发生的前提:有继承关系的两个类中(或说体系)

多态有两种类型:1、向上转型,这是从数据类型角度,把子类对象当成父类来处理,可看作自动类型转换

2、向下转型,强制类型转换

自动类型转换:1、基本数据类型中,低精度向高精度

2、引用数据类型中,子类向父类

强制类型转换:1、基本数据类型中,高精度向低精度

2、引用数据类型中,子类向父类

public classPoly02{public static voidmain(String[] args){//---------向上转型----------

Big a1 = newSmall();

a1.eat();//输出子类//a1.happy();//找不到符号//向上转型的缺点:对丢失子类对象中特有的属性//---------向下转型----------//向下转型是基于某个类的对象向上转型后,才可向下转型

Small a2 =(Small) a1;

a2.happy();//输出子类

a2.cry();//调用父类

a2.eat();//输出子类//---------instanceof--------//运算符:判断当前对象是不是某个类实例化而来的

Big a3 = newTiny();

a3.eat();//Small b2 = (Small) a3;//b2.happy();//编译通过,但是java.lang.ClassCastException错误

if(a3 instanceof Small){

Small b2=(Small)a3;

}

System.out.println(a3 instanceof Small );//为了避免java.lang.ClassCastException错误,java引入了instanceof运算符//instanceof运算符,其运算结果是boolean;//if( 引用 instanceof 类型名)-->true/false

}

}

以上就是我的理解.欢迎大家指导!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值