首页 > 编程语言 >Java学习笔记8

Java学习笔记8

时间:2022-12-23 21:12:18浏览次数:42  
标签:Java 变量 继承 子类 成员 笔记 学习 父类 super

1. static关键字

static可以用来修饰的成员变量和成员方法,被static修饰的成员是属于类的是放在静态区中,没有static修饰的成员变量和方法则是属于对象的。

1.1 静态变量

​ 有static修饰的成员变量是属于类的,这种成员变量称为类变量或者静态成员变量。因为类只有一个,所以静态成员变量在内存区域中也只存在一份,所有这个类的对象都可以共享静态变量。

定义格式

修饰符 static 数据类型 变量名 = 初始值;

访问

类名.静态成员变量名

1.2 实例变量

​ 无static修饰的成员变量是属于对象的,这种成员变量称为实例变量

注意:实例变量属于对象,必须创建类的对象才可以访问。

访问

对象名.实例成员变量名

1.3 静态方法

​ 有static修饰的成员方法是属于类的,这种成员方法称为类方法或者静态方法。因为类只有一个,所以静态方法在内存区域也只存在一份,所有这个类的对象都可以共享静态方法。

访问

类名.静态方法名()

1.4 实例方法

​ 无static修饰的成员方法是属于对象的,这种成员方法称为实例方法

注意:实例方法属于对象,必须创建类的对象才可以访问。

访问

对象名.实例方法名()

2. 继承

​ 假如多个类种存在相同属性和行为时,我们可以将这些内容抽取到单独的一个类中,那么多个类就无需再定义这些相同的属性和行为,只要继承抽取出来的那个类即可。其中,多个类称为子类,被继承的类称为父类超类或者基类

2.1 继承的含义

​ 继承就是子类继承父类的属性和行为,使得子类对象可以直接具有与父类相同的属性和行为。子类可以直接访问父类中非私有的属性和行为。

继承的好处

  • 提高代码的复用性,减少代码冗余
  • 使类与类之间产生了关系

2.2 继承的使用

通过extends关键字,可以声明一个子类继承父类

格式

class 父类 {
    ...
}

class 子类 extends 父类 {
    ...
}

注意:Java是单继承的,一个类只能继承一个直接父类。

子类不能继承的内容

  • 子类不能继承父类的构造方法

注意:子类可以继承父类的私有成员(成员变量、成员方法),只是子类无法直接访问私有成员,可以通过get/set方法访问父类中的私有成员变量。

2.3 使用super访问父类成员

​ 子父类中出现了同名的成员时,在子类中可以使用super关键字来访问父类中非私有的成员。

注意:super代表的是父类对象的引用,this代表的是当前对象的引用。

格式

成员变量: super.成员变量名
成员方法: super.成员方法名()

2.4 方法重写

​ 子类中出现与父类一样的方法(返回值类型、方法名和参数列表相同)时,会出现覆盖的效果,称为重写。

注意:

  • 建议所有重写都加上@Override注解,一方面可以提高代码的可读性,一方面可以防止重写出错。
  • 方法重写是发生在子父类之间的关系、
  • 必须要保证权限大于等于父类权限
  • 返回值类型、方法名和参数列表都要一致

2.5 继承后的构造方法

​ 继承之后,子类的构造方法中默认有一个super(),表示调用父类的构造方法,父类成员变量初始化后才可以给子类使用。

2.6 super(...)和this(...)

superthis访问成员

this.成员变量名
super.成员变量名

this.成员方法名()
super.成员方法名()

superthis调用构造方法

super(...); // 调用父类的构造方法
this(...); // 调用本类的其他构造方法

子类构造方法的第一行都隐含了一个super(),所以子类构造方法中可以省略super()

2.7 继承的特点

  • Java只支持单继承,不支持多继承
  • 一个类可以有多个子类
  • 可以多层继承

注意:Java中所有的类都默认继承Object类。

标签:Java,变量,继承,子类,成员,笔记,学习,父类,super
From: https://www.cnblogs.com/kuaicode/p/17001638.html

相关文章

  • 机器学习-----心律失常分类
    Python机器学习--------心率失常分类一、选题的背景介绍因为随着我国逐渐步入老龄化社会还有年轻人喜欢熬夜玩游戏,心血管疾病患者持续增加,使得心脏监护系统需求也在不断......
  • 学习.NET MAUI Blazor(一)、Blazor是个啥?
    先把Blazor放一边,先来看看目前Web开发的技术栈。注:上图只是为了说明问题,没有任何语言歧视!这是目前最常用的前后端分离开发模式,这个开发模式需要配备前端工程师和后端工......
  • java医院挂号系统挂号预约网站挂号网站预约网站源码
    主要实现门诊挂号和用户网站预约挂号的功能演示视频:https://www.bilibili.com/video/BV1nN411d7HT/?share_source=copy_web&vd_source=ed0f04fbb713154db5cc611225d92156......
  • java网上花店源码花店商城网上花店商城购物商场项目花店系统鲜花商城
    Java基于ssm开发网上花店系统单商家系统,主要有商品分类,列表,详情,购物车,订单等功能。演示视频:https://www.bilibili.com/video/BV1bT4y1N7vw/?share_source=copy_web&vd_so......
  • java开发的环保网站垃圾分类系统源码
    本项目是基于springboot开发的小区垃圾分类的监管系统。为了更好的督促小区业主更好的进行垃圾分类和垃圾投放,本系统设计了一套积分奖罚机制,如果业主此次投放垃圾符合分类......
  • java基于ssm,jsp鞋城源码卖鞋服装男鞋商城女鞋商城项目源码
    ssm开发的网上鞋城系统,主要有商品分类,列表,详情,加入购物车,订单,收货地址等功能,单商家登录后台可以发布商品,上下架商品,发货退款等管理订单。演示视频:https://www.bilibili.c......
  • java大学校园饭卡管理系统饭卡查询系统饭卡挂失网站源码
    springboot开发的大学生饭卡系统,学生可以登录该系统充值饭卡,挂失饭卡,取消挂失,查看自己的所有饭卡,以及发卡的充值记录。超级管理员拥有最大的权限,饭卡管理员可以添加饭卡信......
  • Java继承
    显示所有属性:alt+shift+s封装快捷键:alt+shift+s+r什么是继承?继承是符合人类现实世界的一种概念,它的作用把相同的属性和方法抽取出来,提供可以被继承的子类使用,实现......
  • Java多态
    什么是多态?同一个引用类型,使用不同的实例来执行不同的操作;同一个父类,使用不同的子类对象执行不同的操作。多态的实现:1、声明父类创建子类(向上转型:子类转为父类自动......
  • 教你用JavaScript实现进度条
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个进度条。进度条数字自动增加,条状图片动画演示进度完成度。通过实......