我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java中的继承

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java中的继承

一、继承

是面向对象三大特征之一。

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

继承需要符合的关系是:is-a。例如:智能手机是手机。

二、类的继承格式

在java中通过extends关键字可以申明一个类是从另一个类继承而来的,一般形式如下:

{修饰符列表} class类名 extends 父类名{

                        类体=属性+方法

}

class Phone{    }class SmartPhone extends Phone{    }

三、java语言中的继承只支持单继承

一个类不能同时继承很多类,只能继承一个类。但是一个类也可以间接继承其他类。

class A{}class B{}class C{}class T{}class C extends class B{}class B extends class A{}class A extends class T{}

C类直接继承B类,但是C类间接继承A、T类。

四、继承的特性

private修饰的属性、方法不支持继承。

构造方法不支持继承。

继承父类非private的属性和方法,并且子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

五、所有类的父类---Object类

java语言中一个类没有显示的继承任何类,该类默认继承java.lang.Object类。

六、方法重写

在继承体系中,子类中出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。

重写方法的名称、形参列表必须与被重写方法的名称和参数列表一致。私有方法不能被重写。子类重写父类方法时,访问权限必须大于或等于父类。

方法重写的应用场景,当父类的该功能不能完全满足自己的需求时,子类可以重写父类中的方法。

public class Teat4 {    public static void main(String[] args) {        SmartPhone hw=new SmartPhone();        hw.call();        hw.sendMsg();    }}class Phone{    public void call(){        System.out.println("打电话");    }    public void sendMsg(){        System.out.println("发短信");    }}class SmartPhone extends Phone{    public void call(){        System.out.println("视频通话");    }    public void sendMsg(){        System.out.println("发图片");    }}

运行结果:

七、继承后:成员变量、成员方法的访问特点。

在子类中访问成员变量或成员方法满足:就近原则。

先从子类开始找,按照从局部范围到成员范围的顺序;在子类中没有找到再从父类中找,也是按照从局部范围到成员范围找;若是在父类中也没有找到,就会报错!

如果子父类中出现了重名的成员,会优先使用子类的。此时如果一定要在子类中使用父类的怎么办?

可以通过super关键字,指定访问父类的成员。

格式:super.父类成员变量/父类成员方法格式,如下:

public class Teat4 {    public static void main(String[] args) {        SmartPhone hw=new SmartPhone();        hw.call();        hw.sendMsg();    }}class Phone{    public void call(){        System.out.println("打电话");    }    public void sendMsg(){        System.out.println("发短信");    }}class SmartPhone extends Phone{    public void call(){        super.call();        System.out.println("视频通话");    }    public void sendMsg(){        super.sendMsg();        System.out.println("发图片");    }}

运行结果:

 八、子类构造器

子类继承父类后,子类中所有的构造器都会默认先访问父类中无参数的构造器,然后再执行自己的。

public class Teat4 {    public static void main(String[] args) {        SmartPhone sm=new SmartPhone();        SmartPhone sm1=new SmartPhone(6900);    }}class Phone{    int price;    public Phone(){        System.out.println("父类无参数的构造方法! ");    }}class SmartPhone extends Phone{    public SmartPhone(){        System.out.println("子类中无参数的构造方法!");    }public SmartPhone(int price){        this.price=price;        System.out.println("智能手机的价格为:"+price);    }}

运行结果:

 2、如果父类中没有无参数的构造器,只有有参构造器,就会报错。因为子类默认是调用父类无参构造器的。

public class Teat4 {    public static void main(String[] args) {        SmartPhone sm1=new SmartPhone(6900);    }}class Phone{    int price;    public Phone(int price){        this.price=price;        System.out.println("手机的价格为:"+price);    }}class SmartPhone extends Phone{    public SmartPhone(int price){        this.price=price;        System.out.println("智能手机的价格为:"+price);    }   }

运行结果:

 3、如何解决

子类构造器中可以通过书写super(...),手动调用父类的有参构造器

public class Teat4 {    public static void main(String[] args) {        SmartPhone sm1=new SmartPhone(6900);    }}class Phone{    int price;    public Phone(int price){        this.price=price;        System.out.println("手机的价格为:"+price);    }}class SmartPhone extends Phone{    public SmartPhone(int price){        super(price);        this.price=price;        System.out.println("智能手机的价格为:"+price);    }}

运行结果:

来源地址:https://blog.csdn.net/2301_76967212/article/details/130183261

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java中的继承

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java继承

各位朋友们,大家好!今天我为大家分享的是Java上面一个很重要的知识点:继承,继承也被称为Java的灵魂之一。 文章目录 为什么要使用继承子类怎样继承父类在子类中如何访问父类的成员super关键字 当父类中有构造方法时this关
2023-08-17

Java之继承

继承 继承为什么使用继承继承是什么继承的语法访问父类成员访问父类成员变量访问父类成员方法 super关键字子类构造方法super和this异同分别的使用方法 继承的方式final关键字 作者简介: zoro-1,
2023-08-16

Java继承的概念

本篇内容介绍了“Java继承的概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!继承与合成基本概念继承:可以基于已经存在的类构造一个新类。继
2023-05-30

Go 中的继承

Go 中的继承是一种面向对象编程的重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以重用父类的代码,并且可以添加自己的特定功能。在 Go 中,继承是通过结构体嵌套实现的。php小编鱼仔将在本文中详细讲解 Go
Go 中的继承
2024-02-09

Java中的继承如何实现

本篇内容主要讲解“Java中的继承如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中的继承如何实现”吧!一. 继承众所周知,我们Java语言是一种面向对象的编程语言,每当我们提到J
2023-06-29

Java中继承图文详解

java继承与合成基本概念继承:可以基于已经存在的类构造一个新类。继承已经存在的类就可以复用这些类的方法和域。在此基础上,可以添加新的方法和域,从而扩充了类的功能。合成:在新类里创建原有的对象称为合成。这种方式可以重复利用现有的代码而不更改它的形式。相关视频教
Java中继承图文详解
2019-09-16

java 继承的基础(转)

java 继承的基础(转)[@more@]继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类。运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性。该类可以被更具体的类继承,每个具体的类都增加一些自己特有的东西。在J
2023-06-03

java中继承与实现的区别

继承:如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类。实现:如果多个类处理的目标是一样的,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让他们的实现这个接口,各自实现自己具体的处理方法来
java中继承与实现的区别
2018-01-26

java如何继承

继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的方法和属性。继承使用 extends 关键字。 (
java如何继承
2021-02-01

Python类中的单继承和多继承用法

本篇内容主要讲解“Python类中的单继承和多继承用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python类中的单继承和多继承用法”吧!前言Python面向对象编程语言,有List、Str
2023-06-02

什么是Java继承

本篇内容主要讲解“什么是Java继承”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是Java继承”吧!一、继承的概念1.什么是继承在现实生活中,继承指的是子女继承父辈的财产。在程序中,当一个
2023-06-15

java中继承的含义是什么

在Java中,继承是一种面向对象编程的机制,允许一个类(子类)基于另一个类(父类)来定义。通过继承,子类可以继承父类的属性和方法,从而避免重复编写代码并实现代码的重用。继承的含义包括以下几个方面:代码重用:子类可以继承父类的属性和方法,从
2023-10-26

java中继承的优缺点对比

这篇文章将为大家详细讲解有关java中继承的优缺点对比,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实
2023-06-14

python中的多继承

python和C++一样,支持多继承。概念虽然容易,但是困难的工作是如果子类调用一个自身没有定义的属性,它是按照何种顺序去到父类寻找呢,尤其是众多父类中有多个都包含该同名属性。class P1 #(object):    def foo(s
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录