java继承

继承的概述

面向对象的三大特征:封装性、继承性、多态性

继承是多态的前提,如果没有继承,就没有多态

父类也可以叫基类、超类

子类也可以叫 派生类

在继承的关系中 , “子类就是一个父类”。也就是说,子类可以被当做父类看待,例如父类是员工,子类是讲师,那么“讲师就是一个员工”。关系: is - a

java继承的三个特点

继承的格式

定义父类的格式:(一个普通的类定义)

public class 父类名称{

​ // …

}

定义子类的格式:

public class 子类名称 extends 父类名称{

​ // …

}

继承中成员变量的访问特点

  • 直接通过子类对象访问成员变量:等号左边是谁(哪个类定义的),就优先用谁的,没有则往上找(父类,父类的父类…)
  • 间接通过成员方法访问成员变量:使用的方法属于哪个类,就优先用谁的,没有则往上找。
  • 要确定使用的方法属于哪个类,要看等号的右边;创建的对象是谁,就优先用谁,没有则向上找。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class A{
int a = 1;

public int getA() {
System.out.println("父类的a:" + a);
return a;
}
}
class B extends A{
int a = 2; //注释之后就会使用父类的a
public void say(){
System.out.println("子类的a:" + a);
}
}
public class Main8 {
public static void main(String[] args) {
A obj1 = new B();
B obj2 = new B();
System.out.println(obj1.a); // 1
System.out.println(obj2.a); // 2
obj1.getA(); //父类的a:1
obj2.getA(); //父类的a:1
// obj1.say(); 错误写法
obj2.say(); //子类的a:2
}
}

注意事项:无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。


java继承
https://blog.wangxk.cc/2020/08/19/java继承/
作者
Mike
发布于
2020年8月19日
许可协议