面向对象的三大特征之继承、方法覆写与方法重载的区别、Object类及其方法与权限修饰符

本文主要内容:

(1)类与类之间的关系
(2)继承
(3)方法覆写与方法重载的区别
(4)Object类

1.类与类之间的关系
泛化(继承、实现)A is a B
包含(组合、聚合、关联)A has a B
依赖(依赖)A use a B
2.继承
(1)子类继承父类,通过一个关键字(extends)
(2)子类的对象可以调用父类中(public、protected)属性和方法,当自己来使用
(3)子类可以添加自己独有的属性和方法
(4)子类从父类中继承过来的方法不能满足子类的需求,可以在子类中重写(覆盖)父类的方法,更多指的是内容**[3]**
(5)每一个类都有继承类,如果不写extends关键字,默认继承Object,如果写了extends,则继承后面那个父类,可以理解为Object类非常重要,是任何一个引用类型的父类(直接或间接的继承Object),Object类没有父类**[4]**
(6)java中继承是单个存在的(单继承),每一个类只能有一个继承类(在extends后面只能写一个类)
3.方法重写与方法重载的区别
方法重写
类 :产生两个继承关系的类,子类可以重写父类的方法
权限:子类可以大于等于父类
特征修饰符:
final:父类方法被final修饰,子类不能重写
static:父类方法被static修饰,子类不存在重写
abstract:父类方法被abstract修饰,子类必须重写
返回值:子类可以小于等于父类
名字:子类与父类一样
参数 :子类与父类一样
异常 :如果父类方法抛出运行时异常,子类不予理会。如果父类抛出编译时异常,子类抛出的异常个数类型少于等于父类,子类抛出类型小于等于父类
方法体:子类的方法内容与父类不一致
方法重载
类:一个类中的一组方法
名字:一个类中的多种方法名必须一致
参数:每个方法的参数列表不同(个数、类型、顺序)
方法体:每一个重载方法的执行过程不一致
4.Object类中的方法
(1)hashCode():将对象在内存中的地址经过计算得到一个int整数

public native int hashCode();
//native:表示底层调用的是C++的代码

(2)equals():用来比较两个对象的内容,Object默认效果是==,equals方法是Object类中继承过来的方法,默认比较的是地址,如果想要改变其规则,可以进行方法重写

public boolean equals(Object obj){
    return (this==obj);
}

(3)toString():打印输出时将对象变成String字符串

public String toString(){
    return this.getclass().getName()+"@"+Integer.toHexString(this.hashCode());
}

(4)getClass():获取对象对应类的类的反射(反射)
(5)wait():线程进入挂起等待状态,存在方法重载
(6)notify():线程唤醒
(7)notifyAll():唤醒所有
(8)finalize():权限修饰符是protected在对象被GC回收的时候,默认调用执行的方法。考点final、finally、finalize区别

protected void finalize(){
    
}

(9)clone():权限修饰符protected,为了克隆对象
5.类与类的关系的具体介绍
包含关系(组合、聚合、关联),从程度上各不相同[has-a]
组合:人和大脑、人和心脏的关系(整体与部分的关系,不可分割,消亡就都消亡)
聚合:汽车与车轮子的关系、电脑和主板(整体与部分的关系,创建时有可能是分开的)
关联:人有汽车、人有电脑(整体和部分的关系,可以分割,后来形成在一起)
从java程序来描述这样的关系,通过一个类的对象当做另一个类的属性来储存
依赖关系:use/need-a
屠夫杀猪:一个类屠夫需要做一件事情杀猪(方法),同时还需要一个类猪
不是整体与部分的关系,某一件事情产生了关系,临时组合在一起,这件事情一旦做完关系即解散;在java程序体现的形式为:一个类的方法中使用了另一个类的对象,第一种可以在方法中传递参数、第二种可以在方法中自己创建。
设计类的关系遵循的原则:高内聚低耦合
耦合度:紧密 继承(实现)>包含>依赖
6.修饰符
(1)权限修饰符:public、protected、默认不写、private
(2)特征修饰符:final、static、abstract、native、*transient(瞬时的、短暂的、序列化)、synchronized、volatile(不稳定的)
7.权限修饰符
(1)权限修饰符能修饰类本身和类中的成员(除程序块)
(2)权限修饰符用来修饰类的时候只有两个可以用(protected、默认不写)
(3)权限修饰符可以用来修饰类中的其他成员
public:本类、同包、子类
protected:本类、同包
默认不写:本类、同包(通过子类对象在子类范围内部访问)
private:本类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值