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修饰一个方法,该方法就是抽象方法,抽象方法必须存在于抽象类中
子类必须重写父类的抽象方法(父类的抽象方法相当于一个半成品,子类重写将其补全)

猜你喜欢

转载自blog.csdn.net/qq_34566673/article/details/106458220
今日推荐