继承和方法重写

1.Java的继承语法格式
Java继承的关键字是:extends
格式:
public class 子类名 extends 父类名 {

}
注意:Java中类的继承是单继承。

2.子类继承到了父类的那些属性和方法
子类继承父类后,那么子类就继承到了父类所有的属性和方法。
子类继承父类后,子类和子类的对象能直接调用的属性和方法分为两种情况:
1.子类和父类在同一包下:
1.私有的属性,方法以及构造方法是不能被子类的对象(子类对象)直接调用的。
2.默认的,受保护的和共有的属性以及方法都可以被子类的对象以及子类直接调用。
2.子类和父类在不同的包下:
在子类的{}中,只有公有的,受保护的属性和方法能在子类中直接调用。
子类对象调用方法时,那么只有公有的属性和方法能被子类对象调用。

访问修饰符 范围
private 在类的{}里边
默认的 在同包的任何类中。
protected 在同包下和不同包下是,受保护的属性、方法可以在子类的{}里边调用。
public 只要是一个项目(工程)中的类都可以直接调用。

3.为什么需要使用继承?
1.提高代码的重用性。
2.提高程序的扩展性。

4.方法重写
1.必须要存在一个继承关系。
2.子类在重写方法时,那么子类重写方法访问修饰符 返回值类型
方法名(数据类型 参数名,..){},必须要和父类的完全一样。
3.方法体不同。

怎么调用方法:
1.new 关键字后面的构造方法时谁的。
2.会优先调用子类类中的方法,如果子类中没有这些 方法,则会调用父类中的属性和方法。

注意:当实现继承后,在子类中也可以实现方法重载。

5.自动转型
问题:学校有教英语的老师,现在教的是大学生,这个老师可以不可以教其他类型的学生?
怎么实现英语老师教不同类型的学生?
public void teach(Student un){
un.study();
}
用父类的类型来表示它所有的子类。

UNStudnet un = new UNStudent();
teach(un);

Student stu = new UNStudent();
teach(stu);

要实现自动转型:必须要存在继承关系。
优点:减少重复的代码。
缺点:使用了自动转型后,就不能调用子类中(父类中没有的,但是子类中有的方法)定义的方法
引起这个缺点的原因是由于Java的编译机制引起的:
Java编译时会根据对象名的类型,去类中查找方法是否存在,如果
方法存在,则通过编译,如果方法不存在就编译报错。

6.多态
Java多态的特性是由:方法重载,继承,方法重写,自动转型等技术
所引起的问题。
面向对象的三大特性:1.继承 2.多态 3.封装
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值