java的三大特性之二继承与多态

1.包

建立包的语法:

package <包名>

注意:声明一个包的语句必须写在类中的第一行。

如果要使用java中存在的包,可以在程序中使用import语句导入包。

在程序导入包的代码如下:

importt <包名> .<类名>

如果要导入一个包中的多个类,可以使用“*”表示包中所有的类。例如:

import java.util.*;      //导入java.util包中的所有类

2.继承

继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

java的继承语法格式如下:

[修饰符] class 子类名 [extends 父类名] {

              //类定义部分

}

注意:

java中的继承为单继承,即一个子类只能有一个直接的父类。

子类可以继承父类中访问权限为public、protected、default的成员变量和方法。

3.重载和重写

重载:

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

使用方法重载时,需要注意以下几点:

1.同一个类中的方法名相同,参数列表不同。

2.返回值类型不能用于区分方法的重载。

提醒:构造方法也可以实现方法的重载。

 

重写:

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

方法的重写规则:

参数列表与被重写方法的参数列表必须完全相同。

访问权限不能比父类中被重写的方法的访问权限更低。

父类的成员方法只能被它的子类重写。

声明为 final 的方法不能被重写。

4.多态

多态是指同一操作作用于不同的对象,可以有不同的解释,以致产生不同的执行结果。

在编译时,可以通过父类的引用指向子类对象,而在运行时,则通过父类所指向的子类对象,调用

子类中重写的方法。

引用变量的强制类型转换

如果需要让引用变量调用运行时类型的方法,则必须将其强制类型转换为运行时类型,强制类型转换需要借助类型转换运算符。

强制类型转换需要注意以下两点:

基本类型之间的转换只能在数值类型之间,这里所说的数值类型包括整数型、字符型和浮点型,不能和布尔类型相互转换。
引用类型之间的转换只能在具有继承关系的两个类型之间进行,如果是没有继承关系的类型,找这个对象必须实际上是子类实例才行即编译时类型是父类型,运行时类型是子类型,否则将会引发ClassCaseExpection异常。

 

instanceof运算符

instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型或其子类型的实例。

使用instanceof运算符时,需要注意instancecof运算符前面操作数的编译时,类型要么与后面的类相同,要么与后面的类具有父子继承关系,否则会引起编译失误。

 案例:

 

这是我用java的继承与多态写的代码,如果有错误的话请在评论留言

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值