java继承的方式分为哪两种_java简述什么是继承

java继承的方式分为哪两种_java简述什么是继承如现实生活中的继承 孩子继承父辈的财产 孩子可以直接拿父辈的财产来使用 Java 中的继承是指在现有类的基础上定义一个新的类 现有类称为父类 新的类称为子类 子类会自动拥有父类的可继承的内容多个类中存在相同属性和行为时 将这些内容抽取到单独一

如现实生活中的继承,孩子继承父辈的财产,孩子可以直接拿父辈的财产来使用,Java中的继承是指在现有类的基础上定义一个新的类,现有类称为父类,新的类称为子类,子类会自动拥有父类的可继承的内容

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。

继承描述的是事物之间的所属关系,这种关系是: is-a的关系。

定义

就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

好处

1.提高代码的复用性。

2.类与类之间产生了关系,是多态的前提。

格式

通过extends关键字,可以声明一个子类继承另外一个父类,定义格式如下:

class 父类 {

...

}

class 子类 extends 父类 {

...

}

例如

// 1.父类

class Person {
String name;
int age;
public void eat() {
System.out.println(name + " 吃饭");
}
public void rest() {
System.out.println(name + " 休息");
}
}

// 2.子类

// 3.测试类

public class InheritText {
public static void main(String[] args) {
Child c = new Child();
c.name = "小李";
c.age = 6;
c.eat();
c.rest();
Adult a = new Adult();
a.name = "马上有";
a.age = 28;
a.eat();
a.rest();
Person p = new Person();
p.name = "张三";
p.age = 20;
p.eat();
p.rest();
}
}

父类不可被继承的内容

1.被private修饰的

2.构造方法不能继承

通过getter/setter方法访问父类的private成员变量

继承后的特点:成员变量

成员变量不重名

如果子类父类中出现不重名的成员变量,这时的访问是没有影响的。

成员变量重名

如果子类父类中出现重名的成员变量,这时的访问是有影响的

子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用super关键字,修饰父类成员变量,类似于之前学过的this

格式

super.父类成员变量名

继承后的特点:成员方法

成员方法不重名

如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法

成员方法重名:重写(Override)

如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写(Override)。

方法重写:子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。

示例

class Fu {
public void say() {
System.out.println("Fu shuo");
}
}

class Zi extends Fu {
//子类重写了父类的say方法
public void say() {
System.out.println("Zi shuo");
}
}

public class FzTest {
public static void main(String[] args) {
Zi z = new Zi();
// 子类中有say方法,只执行重写后的say方法
z.say();
}
}

继承后的特点:构造方法

1.构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。

2.构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个super(),表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

继承后子类构造方法特点:子类所有构造方法都会调用父类的无参构造

super和this

super和this的含义

super:代表父类的存储空间标识(可以理解为父亲的引用)。

this:代表当前对象的引用(谁调用就代表谁)。

uper和this的用法

this.成员变量 ‐‐ 本类的

super.成员变量 ‐‐ 父类的

this.成员方法名() ‐‐ 本类的

super.成员方法名() ‐‐ 父类的

this(...) ‐‐ 本类的构造方法

super(...) ‐‐ 父类的构造方法

子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造会覆盖默认的super()。

super()和this()都必须是在构造方法的第一行,所以不能同时出现。

继承的特点

1.Java只支持单继承,不支持多继承。

2.一个类可以有多个子类。

3.Java支持多层继承(继承体系)。

顶层父类是Object类。所有的类默认继承Object,作为父类。

4.子类和父类是一种相对的概念。

编程小号
上一篇 2024-12-07 20:21
下一篇 2024-12-07 20:18

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/4634.html