返回顶部
首页 > 资讯 > 后端开发 > Python >Java超详细讲解三大特性之一的继承
  • 661
分享到

Java超详细讲解三大特性之一的继承

2024-04-02 19:04:59 661人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录继承的概念方法的重写super关键字的使用super调用构造器总结继承的概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,

继承的概念

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。

继承性的好处:

  • 减少代码的重复
  • 提高代码复用性
  • 便于功能拓展

✅继承性的格式:class A extends B{}

A:子类,派生类,subclass,B: 父类 ,超类, 基类,superclass

体现:一旦子类A继承父类B之后,子类A中就获取了父类B中声明的所有的属性和方法,特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构,只有因为封装性的影响,使得子类不能直接调用父类的结构而已

子类继承父类以后,还可以声明自己特有的特有的属性或方法:实现功能的拓展。而一个父类是可以有多个子类的,java中类的单继承性:一个类只能有一个父类,子父类是相对的概念,子类直接继承的父类,称为:直接父类,间接继承的父类称为:间接父类,子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法

如果我们没有显示的声明一个类的父类的话,则此类继承于java.lang.Object类,Object类是所有java类的根父类

继承中需要注意的点:

1.子类不能选择性继承父类;

2.Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点;

3.构造方法不会被子类继承,但可以从子类中调用父类的构造方法。

例如

class teacher{             //声明一个teacher类为父类
	String name;      	   //定义父类的成员变量name、age   
	int age;
	void show(){           //定义父类成员方法,将成员变量输出
		System.out.println(name); 	  
		System.out.println(age); 
	}
}
class Student extends teacher {     //声明一个Student类为子类并继承父类
}
public class myfirst {
	public static void main(String[] args) {
	System.out.println("学生");
	Student student=new Student();     //声明一个Student类的实例对象student
	student.name="Tom";                //子类调用父类的成员变量name并赋值
	student.age=19;                    //子类调用父类的成员变量age并赋值
	student.show();                    //子类调用父类的成员方法show
	}
}

方法的重写

在实际应用当中,我们所写的子父类的功能是不一样的,这时我们就需要重写或隐藏父类的该方法。

1重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作

2应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法

3重写的规定:

方法的声明:

权限修饰符 返回值类型 方法名(形参列表)

子类中的叫重写的方法,父类中的叫被重写的方法,子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同,子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符 特殊情况:子类不能重写父类中声明为private权限的方法

关于返回值类型:

父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void,父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类

父类被重写的方法的返回值类型是基本数据类型(比如:double),则子类重写的方法的返回值类型必须是相同的

子类和父类中的同名参数的方法都必须声明为非static的才为重写,为static的不是重写

例如

class A{
	public void sayHello() {                      //输出英文欢迎
		System.out.println("Hello,Welcome to Java!!!");
	}
	public void sayBye() {
		System.out.println("GoodBye,everyone");
	}
}
class B extends A {           
    public void sayHello() {                      //输出中文欢迎  
    	System.out.println("大家好,欢迎学习Java!!!");
    }
}
public class myfirst {
	public static void main(String[] args) {
	B b=new B();                                //创建子类B的一个实例对象,使用默认构造方法
	b.sayHello();                               //调用子类中重写的方法
	b.sayBye();                                 //调用父类中的方法
	}
}

super关键字的使用

super理解为:父类的,super可以用来调用、属性、方法、构造器

super的使用,我们可以在子类的方法或构造器中。通过使用“super.属性”或“super.方法”的方式,显式的调用父类中声明的属性或方法,但是,通常情况下,我们习惯省略“super.

特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显示的使用”super.属性“的方式,表明调用的是父类中声明的属性。当子类重写了父类中的方法之后,我们想在子类中的方法中调用父类中被重写的方法时,则必须显式的使用“super.方法”的方式,表明调用的是父类中被重写的方法。

super调用构造器

我们可以在子类的构造器中显式的使用“super(形参列表)”的方式,调用父类中声明的指定的构造器,"super(形参列表)"的使用,必须声明在子类构造器的首行,我们在类的构造器中,针对于”this(形参列表)"或super(形参列表)“只能二选一,不能同时出现,在构造器的首行,没有显式的声明”this(形参列表)“或”super(形参列表)“,调用父类中的构造器

例如

package first;
class A{
    public String name="张飞";         //添加成员变量
	public void say() {                //添加成员方法say
		System.out.println("我是父类A成员方法say");
	}
}
class B extends A{
    public String name="关羽";         //与父类中同名的字段,隐藏父类
	public void say(){                 //重写方法say
		super.say();                   //使用super关键字调用父类中的方法
		System.out.println("我是子类B成员方法say");
        System.out.println("父类的name名字:"+super.name); //使用super关键字访问父类中的变量
	}
}
public class myfirst {
	public static void main(String[] args) {
	  B b=new B();                     //创建子类的一个实例对象
	  b.say();                         //调用子类中重写的方法
	  System.out.println("子类的name名字:"+b.name);   //调用子类中的name
	}
}

总结

今天学习了java中继承的特性,方法的重写,以及super关键字的使用。 

到此这篇关于Java超详细讲解三大特性之一的继承的文章就介绍到这了,更多相关Java继承内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java超详细讲解三大特性之一的继承

本文链接: https://lsjlt.com/news/148658.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java超详细讲解三大特性之一的继承
    目录继承的概念方法的重写super关键字的使用super调用构造器总结继承的概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,...
    99+
    2024-04-02
  • Java三大特性之继承详解
    目录概述由来定义好处继承的格式继承后的特点—成员变量成员变量不重名成员变量重名继承后的特点—成员方法成员方法不重名成员方法重名—重写(Overri...
    99+
    2022-11-13
    Java 特性 继承 Java 继承
  • Java超详细讲解三大特性之一的多态
    目录多态性instanceof 关键字的使用==和equals()区别object类中toString()的使用static关键字的使用总结多态性 1理解多态性:可以理解为一个事物的...
    99+
    2024-04-02
  • Java超详细讲解三大特性之一的封装
    目录封装封装的概念Java中的包java中类的成员-构造器java中的this关键字总结说到面向对象则不得不提面向对象的三大特征:封装,继承,多态。那么今天就和大家先来介绍什么是封装...
    99+
    2024-04-02
  • Java超详细讲解类的继承
    目录写在前面1.子类的创建1.1子类的创建方法1.2调用父类中特定的构造方法2.在子类中访问父类成员3.覆盖3.1覆盖父类中的方法3.2用父类的对象访问子类的成员4.不可被继承的成员...
    99+
    2024-04-02
  • Java超详细讲解继承和多态的使用
    目录继承和多态1、继承1.1、继承概念1.2、继承的语法1.3、父类成员的访问1.31、子类和父类不存在同名成员变量1.32、子类和父类成员变量同名1.33、成员方法名字不同1.34...
    99+
    2024-04-02
  • java的三大特性封装、继承、多态
    我们知道面向对象的三大特性是封装、继承和多态。然而我们有时候总是搞不清楚这些概念。下面对这些概念进行整理,为以后面向抽象的编程打下坚实的基础。  封装的概念还是很容易理解的。如果你会定义类,那么相信你对封装的概念已经完全掌握了。下面定义的几...
    99+
    2017-04-24
    java教程 java 封装 继承 多态
  • Java超详细分析继承与重写的特点
    概念:继承是面向对象语法三大特征之一,继承可以降低代码的沉余度,提高编程的效率。通过继承子类可以随意调用父类中的某些属性与方法,一个子类只能继承一个父类,一个父类可以被多个子类继承。...
    99+
    2024-04-02
  • JavaOOP三大特征之封装继承与多态详解
    目录封装继承多态OOP语言的三大特征即:面向对象的三个比较重要的思想 封装 官话:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口进行交互 通俗讲,不让类...
    99+
    2024-04-02
  • 一篇文章超详细的介绍Java继承
    目录前言继承继承的优点重写和隐藏父类方法重写父类中的方法隐藏父类中的方法方法重写和隐藏后的修饰符子类访问父类私有成员使用super关键字使用super调用父类的无参数构造方法/有参数...
    99+
    2024-04-02
  • Python 面向对象编程的三大特性之继承
    目录Python  面向对象编程的三大特性之继承一、继承1、继承的实际栗子2、继承的好处3、继承的使用场景4、继承有几种?5、Python 中继承的简单语法二、不使用继承、...
    99+
    2024-04-02
  • Java三大特性之封装详解
    目录封装概述概述原则封装的步骤封装的操作—private关键字private的含义private的使用格式封装优化1—this关键字this的含义this使用...
    99+
    2022-11-13
    Java 特性 封装 Java 封装
  • Java三大特性之多态详解
    目录概述引入定义多态的体现多态的好处引用类型转换向上转型向下转型为什么要转型转型的异常概述 引入 多态是继封装、继承之后,面向对象的第三大特性。 生活中,比如跑的动作,小猫、小狗和大...
    99+
    2022-11-13
    Java 特性 多态 Java多态
  • Python面向对象的三大特性封装、继承、多态
    Python是一门面向对象的语言。面向对象都有三大特性:封装、继承、多态。 下面分别来说说这三大特性: 1、封装 隐藏对象的属性和实现细节,仅对外提供公共访问方式。在python中用...
    99+
    2024-04-02
  • Java超详细讲解设计模式之一的单例模式
    目录单例模式1.单例模式的结构2.单例模式的实现2.1饿汉式2.2懒汉式3.单例模式的破坏3.1序列化和反序列化3.2反射单例模式 单例模式顾名思义就是单一的实例,涉及到一个单一的类...
    99+
    2024-04-02
  • Java超详细讲解设计模式之一的工厂模式
    目录工厂模式1.简单工厂1.1结构1.2实现1.3优缺点1.4扩展2.工厂方法2.1结构2.2实现2.3优缺点3.抽象工厂3.1结构3.2实现3.3优缺点4.模式扩展4.1实现工厂模...
    99+
    2024-04-02
  • javascript面向对象三大特征之继承的示例分析
    小编给大家分享一下javascript面向对象三大特征之继承的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:继...
    99+
    2024-04-02
  • C++中的三种继承public,protected,private详细解析
    三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 pro...
    99+
    2022-11-15
    public protected private
  • Java 超详细讲解设计模式之原型模式讲解
    目录传统方式原型模式基本介绍原型模式在spring框架中源码分析深入讨论-浅讨论和深拷贝原型模式的注意事项和细节传统方式 克隆羊问题 现在有一只羊 tom,姓名为: tom,年龄为:...
    99+
    2024-04-02
  • Java 面向对象之继承篇详解原理与特点
    目录一、前言二、继承什么是继承呢?继承的好处与弊端继承的使用场景?继承的格式:继承的特点:重写的概念:super关键字super和this的比较一、前言 前面我也们讲述了相关封装的,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作