多态+转换
继承
继承讲究的是类与类之间的关系,分为子与父。
子在继承父的时候要用extends

继承之后子可以用父的所有的方法
快捷键:ctrl+H可以查看树状关系
super
使用的时候只能在子类的方法中;不能和this同时使用。
package com.opp.Demo05;
public class Person {
public Person() {
System.out.println("父类无参进行");
}
}
package com.opp.Demo05;
public class Student extends Person{
public Student() {
//隐藏代码 super();调用了父类
System.out.println("子类无参进行了");
}
}
package com.opp.Demo05;
public class main {
public static void main(String[] args) {
Student student = new Student();
}
}
父类无参先进行;子类无参后进行。
重写
重写指的是方法的重写,在父子中间,子重写父的方法,可以用快捷键:Alt+Insert 的Override
由于系统是静态(static)不能重写,因此利用重写的方法必须是在非静态的方法下
-
重写时方法名必须相同,参数列表也一样,父与子的方法体可以存在差别
![]()
上图中A是子,B是父,A中的test方法是B的重写,在main方法中定义b和a,调用方法出现的结果不同。但是当代码修改后:

这里main方法中还是B类型,但是指向了A。
多态
子可以用父的所有方法,但是父不可以用子特有的方法,多态是方法的多态,属性没有多态。当main中调用方法的时候,由左侧决定(前题是子不重写父的方法)
上图中,a作为子的变量,可以调用父的函数,输出结果是父的;b在这里是作为父的变量,可以从子的类里定义,但是如果子内没有go方法的重写,所有结果由父决定。
转换
存在父子关系,父到子需要借助东西:
((子)父的变量).子的方法

子用父的东西直接用

也就是高转低,借用各种操作。低转高直接转!!


浙公网安备 33010602011771号