【Java|基础篇】面向对象三大特性之继承(上)

文章目录

  • 1. 前言
  • 2. 问题提出
  • 3. 什么是继承
  • 4. 继承的特点

1. 前言

继承是面向对象三大特性之一. Java的继承也是很复杂.
本篇文章先帮助大家理解继承的概念
在这里插入图片描述

2. 问题提出

先来看这两个类:
Student类:

public class Student {
    private String name;
    private int age;
    private String id;
	public void sleep(){
		System.out.println("睡觉");
	}
	public void study(){
		System.out.println("学习");
	}
}

Teacher类:

public class Teacher {
    private String name;
    private int age;
    private String id;
	public void sleep(){
		System.out.println("睡觉");
	}
	public void teach(){
		System.out.println("传道授业解惑");
	}
}

可以看到这两个类具有很多相同的属性和方法. 如果后面定义的类中也要用到这些属性,那么就需要再写一遍这些重复的代码. 为了解决这个问题,面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用

3. 什么是继承

继承是面向对象三大特性之一.Java中的继承是面向对象编程中的一个重要概念,它允许一个类继承另一个类的属性和方法。在Java中,使用关键字extends来实现继承。

因此可以在上面两个类的基础上,将重复的部分提取出来,定义一个Person类:

public class Person {
    private String name;
    private int age;
    private String id;
	public void sleep(){
		System.out.println("睡觉");
	}
}

只需要让Student类和Teacher类继承Person类,就可以不用写共有的属性和方法了,只需要写类中所特有的属性和方法即可. Student和Teacher都继承Person类,因此Student类和Teacher类可以成为Person的子类/派生类,而Person类称为父类/基类或超类
例如: Student类就可以改为这样

public class Student extends Person{
	public void study(){
		System.out.println("学习");
	}
}

注意:

  1. 子类会将父类中的成员变量或者成员方法继承到子类中了
  2. 子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必要继承
  3. 当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑使用继承,来优化代码

4. 继承的特点

  1. Java只支持单继承,不支持多继承,但支持多层继承.多层继承:子类A继承父类B,父类B可以继承父类C,每一个类都直接或者间接的继承于Object类
    【Java|基础篇】面向对象三大特性之继承(上)_第1张图片
    【Java|基础篇】面向对象三大特性之继承(上)_第2张图片
  2. Java中所有的类都直接或者间接继承于Object类
  3. 子类只能访问父类中非私有(非privite)的成员

感谢你的观看!希望这篇文章能帮到你!
专栏: 《从零开始的Java学习之旅》在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”

【Java|基础篇】面向对象三大特性之继承(上)_第3张图片

你可能感兴趣的:(从零开始的Java学习之旅,#,JavaSE,java,开发语言)