面向对象编程2

继承:用于描述类A是类B的关系。。关键字:extends

A有B,A是类,B是A的属性
A能B,A是类,B是A的方法
A是B,A是类,B是类,A继承B,A是B的子类,B是A的父类,B派生A

若类A继承类B,代码书写如下:

  public class B{}

public class A extends B{}


若类A继承类B,类A中将直接拥有类B以及所有祖先类的所有公共资源和受保护的资源

一个类,可以有多个子类;一个子类,仅有一个父类


若类A继承类B,类B继承类C,则B是A的父类,C是A的祖先类,A是B的子类,A是C的子孙类


类A和类B是否处于一条继承链,从类A开始,依次往父类方向寻找,是否能找到类B


若在一个继承体系中,两个类不在一条继承链,两者完全独立

继承可以提取不同类中的公共部分(因此有了抽象)



继承的特性:
1.传递性:父类资源总是可以在子类或子孙类中使用
2.单根性:一个子类有且只有一个父类,如果一个类没有手动书写父类,该父类默认为Object


所有类最终都继承于Object,Object是所有类的父类(根类)


继承中的构造函数:
若父类拥有有参构造函数,子类必须书写构造函数,去调用父类的构造函数

创建一个类的对象时,会先调用该类父类的构造函数,然后再调用子类


super关键字:指代父类    this关键字,只带当前对象


重写override:在子类中使用完全相同的方法签名以覆盖父类的方法
重载overload:同一个类中出现多个同名方法


Object中的方法:
1. boolean equals(Object obj) 该方法是用于比较两个对象是否相等
默认实现:比较两个对象的地址是否相同
2. String toString()   该方法得到当前对象的字符串格式
默认实现:将当前对象的地址使用某种算法(hash算法)生成一个字符串,然后在该字符串前拼接类名,中间使用@分割


final关键字
1.修饰变量:常量,数据不可更改
2.修饰属性:常量,数据不可更改
3.修饰类:最终类,不可被继承
4.修饰方法:最终方法,不可被重写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值