java父类_java 子类与父类

子类是由继承得到的类,被继承的类就是父类,子类与父类是"is-a"关系。

一、子类与父类

1. 子类

(1)子类定义

class 子类名 extends 父类名 {...}

(2)子类继承性

子类继承了父类的所有属性和除了构造方法的其余方法。

子类与父类在同个包中:子类继承父类除了private成员

子类与父类在不同包中:子类继承父类除了private、友好成员

protected成员:若子类与祖先类同包,子类可访问

2. 父类

所有类的祖先类是Object类(java.lang.Object)。

3. 子类与父类

父类可有0或多个子类,子类只能有一个父类。

obj instanceof Class; //若obj是Class的子类, 返回True, 否则返回False

public class Person extendsObject {…}public class Student extendsPerson {…}public class Graduate extendsPerson {…}/*-------------------------------------------*/

public voidmethod1(Person e) {if (e instanceofPerson) {//处理Person类及其子类对象

}if (e instanceofStudent) {//处理Student类及其子类对象

}if (e instanceofGraduate) {//处理Graduate类及其子类对象

}

}

二、子类

1. 隐藏属性

当子类中新声明的变量与父类的成员变量同名时,子类中继承的变量被隐藏,若想使用,可通过继承的方法调用。

2. 隐藏方法——方法重写

当子类中新声明的方法与父类的方法同名时,为方法重写,表示实现与父类不同的行为,但方法名相同。

方法重写时,方法名、返回值类型、参数列表都必须相同,访问权限可升不可降,并且重写的方法不能操作隐藏的成员。

三、子类与子类对象

子类对象的用法与普通类的对象相同。

子类对象不能操作隐藏的成员,可通过继承的方法访问。

四、父类与子类对象

1. 上转型对象

由父类People扩展的子类Chinese,将子类创建的对象Lina的引用值赋给父类创建的对象person,person即为对象的上转型对象。

classPeople {...}class Chinese extendsPeople {...}classE {public static voidmain(String args[]) {

Chinese Lina= newChinese();

People person=Lina;//People person = new Chinese();//以上两句类似此句

}

}

在上面代码的基础上,以下一语句是错误的。因为可以说Chinses类是People类,但不能说People类是Chinses类(如老虎是动物[✔],动物是老虎[✘])。

Chinese Lisa = new People(); //此句错误

2. 上转型对象的规则

(1)上转型对象不存在子类新增的变量或方法,只有继承的、隐藏的变量和继承的、重写的方法。

(2)若子类重写了方法,则上转型对象调用的是重写的方法。

(3)当子类重写的方法是静态方法时,上转型对象调用的是父类的静态方法。

(4)可将上转型对象强制转化为子类对象,此时该对象具备子类新增的属性和行为。

五、对象类型转换

从子类到父类的类型转换可以自动进行。

从父类到子类的类型转换必须通过强制类型转换实现。

无继承关系的引用类型间的转换是非法的。

在转换前可使用instanceof操作符测试对象的类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值