内存空间分配、继承与多态

回顾:
面向对象
定义实体类 - 创建 new - 内存(方法区、堆、栈)

方法区:类的相关信息,包括方法,类必须先加载到方法区,才能使用类
堆:new对象,成员变量
栈:临时变量,方法结束,变量释放

引用类型
构造器:初始化成员变量
没有写过构造器,默认添加无参构造器
方法的重载:方法名相同,参数不同
this:当前对象 this.age; this.sleep(); this();

引用类型的数组 -> 默认值null
二维数组:存放数组的数组

酒店管理系统
String[][] = new String[4][6]; // 24 null
对象:房间Room-num 客户(对象) 类型
客户Guest-name cardID
酒店Hotel-Rooms[][]

NullPointerException:
调用了null值的属性或者方法 null.name

T L J O S Z I -> 父类(提取共性:成员变量/方法)
共性:成员变量一致
打印方法一致 - 功能
区别:构造器不同

子类 extends 父类(继承)
子类都一定有父类,并且只有一个
码云 -> 代码文件/代码片段 创建仓库

回顾:
面向对象
定义实体类 - 创建 new - 内存(方法区、堆、栈)

方法区:类的相关信息,包括方法,类必须先加载到方法区,才能使用类
堆:new对象,成员变量
栈:临时变量,方法结束,变量释放

引用类型
构造器:初始化成员变量
没有写过构造器,默认添加无参构造器
方法的重载:方法名相同,参数不同
this:当前对象 this.age; this.sleep(); this();

引用类型的数组 -> 默认值null
二维数组:存放数组的数组

酒店管理系统
String[][] = new String[4][6]; // 24 null
对象:房间Room-num 客户(对象) 类型
客户Guest-name cardID
酒店Hotel-Rooms[][]

NullPointerException:
调用了null值的属性或者方法 null.name

T L J O S Z I -> 父类(提取共性:成员变量/方法)
共性:成员变量一致
打印方法一致 - 功能
区别:构造器不同

子类 extends 父类(继承)
1.子类都一定有父类,并且只有一个
2.父类可以有多个子类,子类之间没有直接联系
3.子类继承父类,拥有父类中所有的属性和方法
4.子类可以定义自己特有的属性和方法
5.new Dog();创建子类对象的时候,一定会先创建父类对象
6.子类继承了父类的方法,但是可以将方法的实现重新修改掉 - 重写
7.new Dog() -> 类型 Dog Animal -> 向上造型/自动类型转换
new Animal() -> 类型 Animal

多态:Animal an = new Dog();
a.子类继承父类,变量即是父类型引用,也是子类型对象
调用方法,只能调用父类型中定义过的方法,实际运行时最终调用的是自己覆盖过的方法
叫做多态

b.方法的重载

重载:同一个类中,方法名一样,方法参数不同(类型、个数、顺序)
重写:子类覆盖父类的方法
子类的方法签名(方法名+参数)都和父类一致

访问控制符 - 可见范围不同 - 类、成员变量、方法
工程 包 子类 自己
public ✅ ✅ ✅ ✅
protected ❌ ✅ ✅ ✅
default(不填) ❌ ✅ ❌ ✅
private(私有) ❌ ❌ ❌ ✅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值