查漏补缺,面向对象
java查缺补漏(打卡3)
-
面向对象(本质 :以类的形式组织代码,以对象的形式封装数据)
组织代码:我的理解是类中的方法与属性(类中也只有方法与属性这2个)
封装数据:
-
对象是抽象概念(我认为抽象概念[共有的属性模版]可以理解为类)的具体实例(即new)
- 例如:张三是人的的具体化实例
-
特性
-
封装:属性私有,get/set。即只要操作接口实现可以不了解
-
继承(extends):对一批类的抽象。例如哺乳动物和非哺乳动物2个类都在动物这个大类中
-
子类的无参构造器会默认调用父类的无参构造器,如果父类中写了有参但没写无参会报错。
(注释无参)
可以通过写super调用父类的有参构造器来解决![image-20260313173255649]()
-
super用于访问直接父类的成员(变量或方法)
-
-
多肽:即同一个方法可以根据对象的不同而采取多种不同的行为方式。通俗来说父类方法和子类方法是相同名字但方法体不同,此时就应该看事什么实际类型与引用类型
一个对象的实际类型是确定的,可指向的引用类型是不确定的:由父类到子类
我是这样理解:人与学生类中有相同的方法,即子类重写的父类,而此时人被赋予了一个实例学生,而学生方法中恰好有此方法
- 多态是方法的多肽,属性没有多态
- 父类与子类有联系
- 存在条件:继承关系,方法重写,父类引用指向子类
- static方法是属于类的不属于实例
- final 常量,最终的不能改变
- private方法:私有的
-
-
-
构造方法(注意点:和类名相同,无返回值)
- 无参构造器(为了保证程序安全)
- 实例化初始值(不定义为默认值)
![image-20260313154115617]()
- 实例化初始值(不定义为默认值)
- 有参构造
![image-20260313154814519]()
- 无参构造器(为了保证程序安全)
-
重写:主要重写里面的方法体
- 需要有继承关系,子类重写父类方法
- 方法名与参数列表必须相同
- 范围能扩大不能缩小:public>Protected>Default>Private
- 抛出的异常:范围,可以被缩小,不能扩大
![image-20260313194527907]()
![image-20260313194551867]()
![image-20260313194128904]()
![image-20260313194500411]()
- 没有static时,b调用的是对象的方法,而b是用A类new
- 有static时,b调用了B类的方法,因为b是用B类定义的
- 因为静态方法是类的方法,而非静态是对象的方法
- 即b是A new出来的对象,因此调用了A的方法
- 根据Java的语言规范,静态方法不能被重写。当子类中出现与父类签名相同的静态方法时,这种情况被称为方法的隐藏,而不是重写。这意味着,如果子类中定义了一个与父类中静态方法签名相同的静态方法,那么父类中的方法将被隐藏,而不是被子类重写。

可以通过写super调用父类的有参构造器来解决






浙公网安备 33010602011771号