夜深人静,今天写了关于Javase基础的继承与重写。
一、继承:
1. 继承是java面向对象编程技术的一块基石,因为它允许创建等级层次的类,继承就是子类继承父类的特征和行为,
使得子类对象(实例)具有父类的实例域和方法。(is-a)父类更通用,子类更具体。
在java中通过extends关键字可以申明一个类是从另一个类继承而来的,一般形式如下:
class父类{ } class 子类 extends 父类{ }
如果子类与父类成员变量名不同,则先执行父类,若相同则子类先执行,如果父类的num私有化之后,子类不能直接访问。(private只能在本类中使用)并且子类与父类相同很少见。
![5b180228f16d1fc20f905f4e9c7edadb.png](https://img-blog.csdnimg.cn/img_convert/5b180228f16d1fc20f905f4e9c7edadb.png)
1.1
2.继承的好处:
提高代码的复用性,给另一个多态提供了前提
3.什么时候定义继承?
必须保证类与类之间存在关系,存在is-a的关系
苹果是水果的一种,肉食动物是动物的一种
![6234e2cacb739389f7885f52d83ce43d.png](https://img-blog.csdnimg.cn/img_convert/6234e2cacb739389f7885f52d83ce43d.png)
1.2
![c626a17e7f1bf5b641480edf9ff62bde.png](https://img-blog.csdnimg.cn/img_convert/c626a17e7f1bf5b641480edf9ff62bde.png)
1.3
如果
4.Java中继承的特点:
java允许单继承,不是直接支持多继承,将多继承以其他的方式来体现,
单继承:一个子类只能有一个父类;
多继承:一个子类有多个继承;(产生不确定性)
class a{ System.put.print("飞"); } class b extends a{ } class c extends b{ }//形成体系
5.继承出现后在代码中的体现:
重点在于成员的体现:
1.成员变量;
2.成员方法;
3.构造方法;
/** * super和this的区别: * this代表本类中的对象的引用 * super代表的是父类的内存空间,super不可以单独使用; */
重写:当子类与父类方法名相同时,会默认打印子类方法
重写覆盖(override),此时子类的方法在运行
![523bc67e0164998840e553a7c438950e.png](https://img-blog.csdnimg.cn/img_convert/523bc67e0164998840e553a7c438950e.png)
2.1
![41f6ddb9696eb56e767a68afb1ba88ed.png](https://img-blog.csdnimg.cn/img_convert/41f6ddb9696eb56e767a68afb1ba88ed.png)
2.2
![4f362c5eff80bb1b25d8d4bb942ad2ee.png](https://img-blog.csdnimg.cn/img_convert/4f362c5eff80bb1b25d8d4bb942ad2ee.png)
2.3
/** * 重写需要注意的事项: * 1.重写的方法父类的方法名称(方法名称的参数列表)相同 * 2.子类重写父类的方法访问修饰符权限不能低与父类,要么权限相同 * 3.父类的私有方法不能相同 * 4.static修饰的方法不能被重写 */
今天除夕+大年初一,白天有些忙,所以更的晚了些(夜深人静更好学习!~)
祝大家新年快乐!~