【校招VIP】java继承

08月04日 收藏 0 评论 1 java开发

【校招VIP】java继承

转载声明:文章来源:https://blog.csdn.net/weixin_45847691/article/details/125340364

一、继承

继承是面向对象程序设计语言的基石之一

只需在新的类中产生现有类的对象 的方式叫做组合,按照现有类的类型来创建新类的方式为继承

1、在java中使用 extends关键字实现类的继承机制

类Parent为父类,Child为子类。

2、通过继承子类会自动拥有基类(父类)所有的成员变量和方法。

3、一个子类只能有一个基类,一个基类可以有多个子类。就像一个儿子只能有一个父亲,但一个父亲可能会有多个儿子。故java只支持单继承,不支持多继承。,终极基类(父类)为java标准类Obiect。

举例:

public class TestPerson {
public static void main (String [] args) {
Student s1 = new Student();
s1.setAge(20);//调用父类方法
s1.setName("jiajia");//父类方法
s1.setSch("Sun school");//调用自己的方法
System.out.println(s1.getName());
System.out.println(s1.getAge());
System.out.println(s1.getSch());
}
}

class Person {
private String name;
private int age;
public void setName (String name) {
this.name = name;
}
public void setAge (int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}

class Student extends Person {
private String school;
public void setSch(String school) {
this.school = school;
}
public String getSch() {
return school;
}
}

运行结果:

为了便于理解,在此画一下该程序内存中的深层原理。

如图:

相当于new了一个Student对象s1,该对象里面又包含一个父类对象Person。(为了方便理解,我将school、name都装在了heap中,实际上字符串常量应该在date segment中)所以子类比父类大,子类对象包含一个父类对象。即创建一个子类对象的时候,该子类对象包含了一个父类对象。

我们得知道这其中的过程是怎样的:其实java会自动在子类的构造器(构造方法)中插入对父类构造器的调用。,即使你不创建子类的构造器,java也会为你合成一个默认的构造器,该构造器同样的会调用基类构造器。

但是,如果没有默认的构造方法,或者想调用一个带参数的构造方法,这个时候super关键字就派上用场了。

二、super关键字

1、调用父类的构造方法

使用super();时,调用父类的无参构造方法

使用super(参数列表);调用父类的有参构造方法

注意: 调用父类构造方法是子类构造方法中需要做的第一步。

2、调用父类中被重写的方法、变量

用一个例子来说明

class FatherClass {
public int value;
public void f(){
value = 100;
System.out.println
("FatherClass.value="+value);
}
}

class ChildClass extends FatherClass {
public int value;
public void f() {
super.f();//调用父类的法f()方法
value = 200;//修改子类对象的value值
System.out.println
("ChildClass.value="+value);
System.out.println(value);
System.out.println(super.value);//父类中的成员变量值已经从0变为100
}
}

public class TestInherit {
public static void main(String[] args) {
ChildClass cc = new ChildClass();
cc.f();
}
}

运行结果:

三、方法重写(OverWrite)

当子类不满意父类中的方法时,可以重新写一遍。

在子类中可以根据需要重写从父类继承来的方法、但必须和父类的方法名、参数列表、返回类型一致。

子类中 可以 重新写 继承来的方法、但必须和父类的方法名、参数列表、返回类型一致。

C 1条回复 评论
六元的大可爱er

这个问题很常见

发表于 2024-04-13 23:00:00
0 0