小白想当程序员

导航

多态+转换

继承

继承讲究的是类与类之间的关系,分为子与父。

子在继承父的时候要用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();

  }
}

main方法运行结果image-20210925191022820

 

 

 

父类无参先进行;子类无参后进行。

 

重写

重写指的是方法的重写,在父子中间,子重写父的方法,可以用快捷键:Alt+Insert 的Override

由于系统是静态(static)不能重写,因此利用重写的方法必须是在非静态的方法下

  • 重写时方法名必须相同,参数列表也一样,父与子的方法体可以存在差别

    image-20210926092803742

     

     

 

上图中A是子,B是父,A中的test方法是B的重写,在main方法中定义b和a,调用方法出现的结果不同。但是当代码修改后:

 

image-20210926093038448

 

 

这里main方法中还是B类型,但是指向了A。

 

多态

 

子可以用父的所有方法,但是父不可以用子特有的方法,多态是方法的多态,属性没有多态。当main中调用方法的时候,由左侧决定(前题是子不重写父的方法)image-20210926094110888

 

 

上图中,a作为子的变量,可以调用父的函数,输出结果是父的;b在这里是作为父的变量,可以从子的类里定义,但是如果子内没有go方法的重写,所有结果由父决定。

 

转换

存在父子关系,父到子需要借助东西:

((子)父的变量).子的方法

image-20210926101338045

 

 

 

 

子用父的东西直接用

image-20210926101516775

 

 

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

 

posted on 2021-09-26 10:30  小白想当程序员  阅读(31)  评论(0)    收藏  举报