前言
当我们准备写一个类时,发现其他的类有我们所需要的成员变量和方法时,我们就可以通过继承的方式,让我们自己的类来继承其他的类,从而获得其他类的成员变量和方法提示:以下是本篇文章正文内容,下面案例可供参考
一、子类?
存在多个类时,我们使用“extends”关键字来表示子类和父类的关系
二、使用步骤
1.格式
代码如下(示例):
class 子类名 extends 父类名{
...
}
2.继承关系
- 只允许单继承,不允许多继承
- 可以多重继承
- Object类是所有类的父类
代码如下(示例):
该处使用的url网络请求的数据。
2.子类继承父类中的哪些成员
- 在同一包中,继承非private的成员。
- 不同包中,只继承protected和public的成员。
- 父类的构造器,子类也不能继承
package com.hanjie.extend;
class Person {
private int averHeight = 180;
public int getAverHeight() {
return averHeight;
}
}
class HanJie extends Person {
int height;
public void setHeight(int height) {
//非法,在同一包中,子类只能继承父类的非private方法
//height = averHeight + height;
this.height = height;
}
public int getHeight() {
return height;
}
}
class Test{
public static void main(String[] args) {
HanJie hanjie = new HanJie();
hanjie.setHeight(185);
System.out.println(hanjie.getHeight());
//子类继承了父类中的getAverHeight()方法
System.out.println(hanjie.getAverHeight());
}
}
3.子类继承父类中的方法问题
- 子类通过重写可以隐藏已继承的方法,即方法的重写,也叫做方法的覆盖
- 当对象调用方法时,先从子类中找有没有该犯法,如果有就执行;如果没有就从父类中找
- 重写的原则:实例方法签名(方法名和方法的参数列表)必须相同,类型相同
- 重写的目的:重写方法可以操作,继承的成员变量,继承的方法,子类新声明的成员变量和方法。当父类中的某一个行为不符合子类具体的特征的时候,此时子类需要重新定义父类的方法,并重写方法体。
//重写方法
package com.hanjie.method;
class Bird {
public void fly() {
System.out.println("飞");
}
}
class HanJie extends Bird{
public void fly() {
System.out.println("走");
}
}
class Test{
public static void main(String[] args) {
HanJie hanjie = new HanJie();
hanjie.fly();
}
}