当前位置: java基础教程 > 07-面向对象 > 阅读正文

继承 — 三大特性之二

2021.2.18.   563 次   1073字

继承,可以对共性抽取,完成代码简化

1.类与对象的层面

一个父类,可以有多个子类

而一个子类可以有多级父类,只能有一个直接父类

所有对象均继承自 Object 类,即 java.lang.Object

1.子类声明中使用 extends 关键字
class A{  //父类
	public A(int a){
		System.out.println("A的构造方法");
	}
	String name = "A";
	String age = "age";
	public void say() {
		System.out.println("I am A class");
	}
	public void call() {
		System.out.println("A call");
	}
}
class B extends A{ //子类
	public B() {
		super(10);
		System.out.println("B的构造方法");
	}
	String name = "B";
	public void haha() {
		System.out.println("haha");
	}
	@Override
	public void call() {
		System.out.println("B call");
	}
}
2.子类可以当作父类使用
A a = new B();

2.成员变量

子类继承父类的成员变量

1.成员同名变量使用规则:优先使用本类,没有则向上找
B b = new B();
System.out.println(b.name);  //B
System.out.println(b.age);   //age
2.子类中,局部变量,成员变量,与父类成员变量的调用
局部变量名:变量名;
成员变量名:this.成员变量名;
父类成员变量名:super.成员变量名;

3.成员方法

子类继承父类的成员方法

1.成员变量同名规则:优先使用本类,没有则向上找
B b = new B();
b.haha();  //haha
b.call();  //A call
2.子类中,成员方法,与父类成员方法的调用
成员方法:方法名
父类成员方法:super.成员方法名;
3.子类同名成员方法,使用 Override 注解检测

该注解,仅起到检测作用,不写该注解,子类代码正常时也能运行

@Override
public void call() {
	System.out.println("B call");
}

4.构造方法

1.子类创建时,必须先调用父类的构造方法,再调用子类构造

2.子类的构造方法不写时,默认赠送 super();

3.如果父类没有无参构造,无法赠送 super();

4.第3种情况下,子类构造的第一行语句,必须写 super(参数);

(该语句只能在子类构造中的第一句调用,其他地方均无法调用)

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群