JavaSE——面向对象高级一(3/4)-面向对象三大特征之二:继承(初步认识继承、了解继承的好处)

简介: JavaSE——面向对象高级一(3/4)-面向对象三大特征之二:继承(初步认识继承、了解继承的好处)

认识继承

什么是继承?

  • Java中提供了一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系。

例如:

public class B extends A{
    
}

此时A类就称为父类(基类或超类),B类称为子类(派生类)


继承的特点

  • 子类能继承父类的非私有成员(成员变量、成员方法)。

继承后对象的创建

  • 子类的对象是由子类、父类共同完成的。


例如:



  • 子类对象实际上是由子父类这两张设计图共同创建出来的。

1、什么是继承?继承后有啥特点?

  • 继承就是用extends关键字,让一个类和另一个类建立起一种父子关系。
  • 子类可以继承父类非私有的成员。

2、带继承关系的类,JaVa会怎么创建它的对象?对象创建出来后,可以直接访问哪些成员?


带继承关系的类,java会用类和其父类,这多张设计图来一起创建类的对象。

对象能直接访问什么成员,是由子父类这多张设计图共同决定的,这多张设计图对外暴露了什么成员,对象就可以访问什么成员。

继承的好处

  • 减少重复代码的编写

例如下面这个需求:

某公司的员工管理系统重,需要处理讲师、咨询师的数据:

讲师的数据有:姓名、具备的技能等等;

咨询师的数据有:姓名、解答问题的总人数等等。

正常情况下编写:



会存在大量重复代码的编写。

使用继承后



两个子类就会同父类的设计图一起创建对象,虽然子类的代码是不完整的,但是它继承了父类的非私有成员,使得子类的信息和功能也得以完整。


END



目录
相关文章
|
2月前
|
C++ 开发者
C++学习之继承
通过继承,C++可以实现代码重用、扩展类的功能并支持多态性。理解继承的类型、重写与重载、多重继承及其相关问题,对于掌握C++面向对象编程至关重要。希望本文能为您的C++学习和开发提供实用的指导。
65 16
|
4月前
ES6的类的实例化过程和传统面向对象语言有什么区别?
ES6 的类的实例化过程更加简洁、直观,并且与现代编程理念更加契合,减少了一些传统面向对象语言中可能存在的复杂性和冗余性。
|
9月前
|
存储 设计模式 Java
JavaSE 面向对象程序设计初级 2024方法变量封装javabean结合内存图详解
JavaSE 面向对象程序设计初级 2024方法变量封装javabean结合内存图详解
49 7
|
9月前
|
存储 编译器 程序员
【C++高阶】C++继承学习手册:全面解析继承的各个方面
【C++高阶】C++继承学习手册:全面解析继承的各个方面
70 1
|
9月前
|
Java 编译器
JavaSE——面向对象基础(2/4)-this关键字、构造器(this的执行原理、应用场景,构造器的特点、应用)
JavaSE——面向对象基础(2/4)-this关键字、构造器(this的执行原理、应用场景,构造器的特点、应用)
48 5
|
10月前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
69 3
|
10月前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
47 2
|
9月前
面向对象三大特征——封装,继承
面向对象三大特征——封装,继承
|
10月前
|
编译器 C语言 C++
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
|
10月前
|
算法 编译器 C语言
【C/C++ 编程题 01】用C++设计一个不能被继承的类
【C/C++ 编程题 01】用C++设计一个不能被继承的类
102 0