学习Java第15天笔记

学习Java第15天笔记,第1张

学习Java第15天笔记

day15文字笔记

知识回顾:

正课:
1、多态:
1) 同一类型的引用在指向不同的对象时,有不同的实现------行为的多态:cut()、run()、step()、getImage()所有的抽象方法一定
都是多态的
abstract class 人{ abstract void cut(); }
class 理发师{ public void cut(){}}
2) 同一个对象被造型为不同的类型时,有不同的功能 ----- 在Java中所有对象都是多态的?怎么理解?

2、强制类型转换
1)强制转换成功的条件
引用所指向的对象,就是该类型
引用所指向的对象,实现了该接口或者继承了该类
强转时若不符合上述两个条件,则发生ClassCastException类型转换异常
建议:在强转之前先通过instanceof
public class Aoo {}
public class Boo extends Aoo implements Inter{}
public class Coo extends Aoo{}

public static void main(String[] args) {
    		Aoo o = new Boo();//向上造型,超类Aoo的引用指向派生类的对象Boo()
    		Boo o1 =(Boo) o;//o是超类Aoo数据类型,o1是Boo数据类型,大到小得强转---满足引用所指对象是该类型
    		Inter o2 = (Inter) o;//满足引用所指对象实现了Inter接口
   		// Coo o3 = (Coo) o;
    		if (o instanceof Coo){//先用instanceof判断再做强转
        			Coo o4 =(Coo) o;
    		}else {
        			System.out.println("o不是Coo类型");
    		}
	}

潜艇游戏第9天:
1、深水炸d潜艇的碰撞
行为:检测深水炸d与潜艇碰撞的算法-------检测碰撞的算法—设计在超类中

在SeaObject中设计一个碰撞算法isHit()检测对象的碰撞,goDead()海洋对象去死
在Battleship中设计addLife()增加命
若撞上了:
	潜艇去消失,深水炸d去消失
	打掉的是侦察潜艇,玩家得10分
	打掉得是鱼雷潜艇,玩家得40分
	打掉得是水雷潜艇,玩家得1条命
深水炸d和潜艇碰撞是定时发生,在bombBangAction()

2、画分和画命

能用父类绝不要用子类!因为可以进行造型

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4744480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-08
下一篇 2022-11-08

发表评论

登录后才能评论

评论列表(0条)

保存