dz网站建设器,ppt素材免费网站,怎样做音乐网站,手机网站免费做推广文章目录 一、继承1.继承的例子#xff08;is-a#xff09;2.组合的例子#xff08;has-a#xff09; 二、多态1.重写2.重载 三、继承的语法四、继承的注意事项1.初始化的顺序#xff1a;2.super关键字 五、继承访问限定符六、多态实现方式七、多态的理解注意事项#xf… 文章目录 一、继承1.继承的例子is-a2.组合的例子has-a 二、多态1.重写2.重载 三、继承的语法四、继承的注意事项1.初始化的顺序2.super关键字 五、继承访问限定符六、多态实现方式七、多态的理解注意事项 一、继承
同c继承的思想一脉相承是为了给现实世界中有is-a关系的事物之间实现代码复用的一种思想。 还有一种关系has-a。
1.继承的例子is-a
比如猫和狗都是动物猫和狗就可以继承自动物。
2.组合的例子has-a
眼睛和鼻子都属于头眼睛和鼻子就可以组合成为头。
二、多态
多态是一种事物的多种状态是一种事物在不同对象上表示出的不同状态的现象。
多态在c中实现必须使用纯虚函数指针/引用在Java中需要使用重写。
1.重写
重写和重载相近但是重写要求更加严苛 1、函数名相同 2、参数列表相同 3、返回值相同 由上重写就是在子类中有一个和父类一模一样的函数只不过是函数体不一样也正是因为此才能够使得一个东西在不同对象身上展示出不一样的状态。
2.重载
重载就是将同一个函数名的函数根据参数列表的不同顺序、个数、类型实现为不同的函数那么这两个同名函数就构成重载。 值得注意的是不以返回值不同而构成重载
三、继承的语法
使用extends关键字。
四、继承的注意事项
1.初始化的顺序
先父类后子类。 在此基础上还有一个原则是先静态代码块再实例代码块再构造代码块。创建多个子类对象时静态代码块只执行一次
class Father {static {System.out.println(父类静态代码块);}{System.out.println(父类实例代码块);}public Father() {System.out.println(父类构造函数);}
}
class Son extends Father{static {System.out.println(子类静态代码块);}{System.out.println(子类实例代码块);}public Son() {System.out.println(子类构造函数);}
}
public class Main {public static void main(String[] args) {Father father new Son();}
}执行结果
2.super关键字
1访问父类成员时需要使用super关键字。 2当在子类中实现带参父类初始化需要显式调用super完成子类中父类成员的初始化。
必须第一行写super、不能与this同时出现 但是this和super可以同时访问父类对象 this可访问的成员是当前整个对象的但是super更专精些只能访问到当前对象继承父类的那一部分成员。
五、继承访问限定符
privatedefaultprotectedpublic同包同类√√√√同包不同类√√√不同包的子类√√不同包非子类√
其中包是用来更好管理类的东西将功能相近的类放在同一个包中
六、多态实现方式
多态实现方式必须有 1.继承 2.子类和父类中构成重写函数名相同、参数列表相同、返回值相同 3.通过父类引用来调用重写的方法切片 可以使用override进行标注重写 若不满足重写则不构成多态
七、多态的理解
当同一个方法构成重写对于同一个父类类型但是让他指向不同的子类发生向上转型会发生不同的调用这就是多态。
注意事项
尽量不要在构造函数中使用实例方法因为会触发动态绑定从而发生不愿意看到的结果
子类中的重写方法 在构造方法中尽量使用final或者是private方法 private