[JavaⅠ]4.1继承与多态——继承、super、抽象类
2021/7/21 22:05:47
本文主要是介绍[JavaⅠ]4.1继承与多态——继承、super、抽象类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
继承与抽象类
-
定义
就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。
-
好处
- 提高代码的复用性。
- 类与类之间产生了关系,是多态的前提。
1 继承的格式
-
extends 关键字,可以声明一个子类继承另外一个父类
class 父类 { ... } class 子类 extends 父类 { ... }
2 重名的成员变量
成员变量不重名无影响,子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰 父类成员变量,类似于之前学过的 this 。
使用格式:
super.父类成员变量名
代码
class Fu { // Fu中的成员变量。 int num = 6; } class Zi extends Fu { // Zi中的成员变量 int num = 9; public void show(){ //访问子类的sum System.out.println(sum); //访问子类的sum System.out.println(this.sum); //访问父类的sum System.out.println(super.sum); } } class ExtendsDemo03 { public static void main(String[] args) { // 创建子类对象 Zi z = new Zi(); // 调用子类中的show方法 z.show(); } } //运行结果为 996
3 重名的成员方法(重写)
成员方法不重名无影响,如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。
- 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效
果,也称为重写或者复写。声明不变,重新实现。
- 子类可以根据需要,定义特定于自己的行为。既沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从
而进行扩展增强。
public class Fu { //Fu类的成员方法 public void show(){ System.out.println("fu"); } } public class Zi extends Fu{ //Zi类的成员方法 public void show(){ //沿袭父类方法 super.show(); //重新实现 System.out.println("zi"); } } public class Demo02 { public static void main(String[] args) { // 创建子类对象 Zi zi = new Zi(); // 调用子类中的show方法 zi.show(); } }
4 Java继承的特点
- Java只支持单继承,不支持多继承
- Java支持多层继承(继承体系)
- 子类和父类是一种相对的概念。
5 抽象类
父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了。
我们把没有方法主体的方法称为抽象方法,包含抽象方法 的类就是抽象类
-
抽象方法
使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。
定义格式:
修饰符 abstract 返回值类型 方法名 (参数列表);
-
抽象类
如果一个类包含抽象方法,那么该类必须是抽象类。
定义格式:
abstract class 类名字 { }
继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父 类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。
代码
public abstract class Fu { public abstract void show(); } public class Zi extends Fu{ @Override public void show() { System.out.println("zi"); } } public class Demo03 { public static void main(String[] args) { Zi zi = new Zi(); zi.show(); } }
参考资料:
《Java教程零基础入门到精通IDEA版》黑马程序员
这篇关于[JavaⅠ]4.1继承与多态——继承、super、抽象类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26大厂数据结构与算法教程:入门级详解
- 2024-12-26大厂算法与数据结构教程:新手入门指南
- 2024-12-26Python编程入门指南
- 2024-12-26数据结构高级教程:新手入门及初级提升指南
- 2024-12-26并查集入门教程:从零开始学会并查集
- 2024-12-26大厂数据结构与算法入门指南
- 2024-12-26大厂算法与数据结构入门教程
- 2024-12-26二叉树入门教程:轻松掌握基础概念与操作
- 2024-12-26初学者指南:轻松掌握链表
- 2024-12-26平衡树入门教程:轻松理解与应用