Java.5--继承-重写

一、继承

1.分类

业务封装;功能封装

2.作用

封装-->属性的安全!
继承-->重用----重用代码(属性+方法)
多态-->扩展

3.实现继承的步骤

从多个相似的类中,找出相同的属性和方法,提取出来放到一个单独的类里,这个单独的类就叫父类/基类/超类(其他子类共有的属性和方法)。
②多个相似的类中,只保留各自特有的属性和方法,那么这些相似的类就叫子类(自己的属性和方法)
③在子类中,使用extends关键字,继承父类,从而继承父类里的属性和方法。

4.应用继承

 public class cat extends Animal{....}

5.子类可以继承父类哪些资源

---除了父类的  构造方法 不能继承,其他资源都可以继承
---但是继承过来后,还要根据资源的 权限修饰符 来判断是否可用!

94f6022b3a9640699b969a234b15eb99.png

二、继承的特性

A.单根性:子类只能继承一个父亲
B.传递性:A3----->B2----->C5(子类继承父类一些属性方法等)

三、继承的方式有两种

A.使用关键字:A extends B
B.隐式继承: A --->继承object类

四、方法重写

1.为什么学习方法重写?

父类里的方法,解决不了子类的问题,所以子类需要重写。

2.重写定义:

子类中,方法名相同,参数列表相同,返回值相同或者缩小,访问修饰符相同或者扩大
子类private方法就会报错
object 所有的最大的基类

3.重载定义:

同一了类中,方法名相同,参数列表不同,与返回值类型和访问修饰符无关的,两个或两个以上的方法。

五、Object类

java中所有类的根基类:
 
1.finalize();--提醒垃圾回收机制,清除该对象。(不推荐使用)
2.clone();---克隆 (有隐患存在,不推荐使用)
3.wait() ;--等待
4.wait(long timeout,int nanos)等待
5.wait(long timeout)等待
6.notify();--唤醒-----多线程的时候讲
7.getClass();------反射的时候讲

六、toString();

在 Java 中,toString() 方法是一个非常常用的方法,它属于 Object 类,因此所有 Java 类都可以继承并重写这个方法。
toString() 方法的主要目的是返回一个表示对象状态的字符串,以便于调试和日志记录。
这个默认实现返回一个字符串,格式为 类名@哈希码的16进制表示。

com.jr.demo5.Student  --全局限定
4554617c                      --哈希码()的16进制整数值
哈希码                            --对象在内存中的地址,经过一个算法,得到的一个数值

equals(Object obj)+hashCode();  ----组合使用获得当前对象的哈希码
----集合:Set去掉重复元素!
将两个对象的哈希值对比,如果哈希值不同,可以存储;
到哈希值相同的情况下:
在使用equals方法进行比较,如果还是相同,不存储;否则存储进去。

七、super

1.
super:当前父类对象
super.父类属性 
super.父类方法 
子类构造中,调用父类构造:super();   super("111",333);
2.
this.当前对象 
this.对象属性 
this.对象方法 
构造方法互相调用: this();this("111",333);
3.
super();必须是子类构造方法中的第一行
this();也必须是构造方法中的第一行
----解决方法:互相不见
4.
继承情况下,子类构造方法的执行顺序:
Student stu=new Student();
使用子类构造方法创建子类对象的时候,先找到子类的构造方法,
方法中如果开发者手动调用了父类的构造方法,那么程序将先执行父类的构造方法;
如果开发者没有动手调用父类构造方法,那么程序将自动帮忙调用父类的【无参构造方法】,
如果父类也继承了其他类,继续向上,直到找到Object的无参构造方法。在从Object类开始执行,直到当前Student构造方法执行完
5.
Object 先执行Object的构造
A在执行A的构造
Person 在执行person的构造
Student 在执行Student的构造 new Student()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值