JAVA-面向对象(学习总结第二篇)
对象转型
转型,也就是类型转换 。是指当引用类型和对象类型不一致的时候,才需要进行类型转换,类型转换有时候会成功,有时候会失败。
Animal ani = new Animal();
Cat Tomcat = new Cat ();
ani = Tomcat;
右边Tomcat (汤姆猫)指向的对象类型是 宠物 ;
左边cat 引用的是 动物
把汤姆猫当做是动物,是否可以说得通?说得通,就可以转。所有的子类转换成父类 都是说的通的。比如你身边的例子:
苹果手机 继承了 手机,把苹果手机当做普通手机使用。
怡宝纯净水 继承了 饮品, 把怡宝纯净水 当做饮品来使用。
父类转子类 ,有的时候行,有的时候不行,所以必须进行强制转换。
强制转换的意思就是 转换有风险,风险自担。
Animal ani = new Animal();
Cat Tomcat = new Cat ();
Dog wangwang = new Dog();
ani = wangwang;
Tomcat=(Cat)ani;
把狗wangwang当做动物,是可以的。此时ani指向了wangwang的类Dog,那么最后一行 将ani转换成Cat就不行了,从语义上来讲,将狗Dog 当做是 猫 Cat是说不通的。所以这种情况下就不能转换。
instanceof A 判断一个引用所指向的对象,是否是A类型,或者是A的子类。返回值是布尔(true或flase)
方法的重写:
子类可以继承父类的对象方法
在继承后,重复提供该方法,就叫做方法的重写
又叫覆盖 override。(子类继承了父类的方法,但是又想在其基础上做出一点修改,此时就需要重写父类的方法,相当于覆盖了父类的方法)。
多态:
那么 动物A = new 猫;
动物B = new 狗;
A和B都是动物对象,但是分别指向猫和狗,
在调用AB的方法时,就会产生自动调用的情况,称之为多态。
A.吃 = 吃鱼;
B.吃 = 吃骨头;
一个父类有多个子类,当父类引用指向了子类对象,并且子类的方法有重写时,就会产生多态的现象。
super关键字:
1.调用父类的指定的构造方法:super(参数名);就能调用父类的构造方法。
2.调用父类的属性:super.属性名;
3.调用父类的方法:super.方法名;
Object是与所有类的父类
toString方法:
返回当前对象的字符串表达式
final
修饰一个类之后,就不能被继承;
修饰一个方法后,子类不能重写该方法
abstract 抽象类
用abstract修饰一个类,该类就是抽象类,抽象类中可以没有抽象方法
用abstract修饰一个方法,该方法就是抽象方法,抽象方法必须存在于抽象类中
子类必须重写父类的抽象方法(父类的抽象方法相当于一个半成品,子类重写将其补全)
上一篇: 简易的吃鸡小游戏
下一篇: php实现文件下载代码分享_php技巧