多态

多态

  • 同一方法可以根据发送对象的不同而采用多种不同的行为方式

  • 一个对象的实际类型是确定的,但却可以指向对象的引用的类型有很多

  • 多态存在的条件:

  1. 有继承关系

  2. 之类重写父类方法

  3. 父类引用指向子类对象  eg:  Person person=new Student()

  • 多态是方法的多态,属性没有多态性

  • 注意事项,在哪些情况下不能重写

    1. static方法,是属于类的,它不属于实例

    2. 被final修饰的常量

    3. private方法

package com.oop;

import com.oop.demo04.Student;
import com.oop.demo04.Person;

public class Application {
    public static void main(String[] args) {
        //一个对象的实际类型是确定的,比如都是Student
        // 但可以指向的引用类型就不确定了:父类的引用指向子类
        //Person和Object都是Student的父类。只不过Object是祖宗类
        Student s1 = new Student();
        Person s2 = new Student();
        Object s3=new Student();
       //对象能执行哪些方法,主要看对象左边的类型,和右边关系不大
        s2.run();//子类重写了父类的方法,执行子类的方法
        s1.run();
    }

}

package com.oop.demo04;

public class Person {
    public void run(){
        System.out.println("run");
    }
}


package com.oop.demo04;

public class Student extends Person {
    @Override
    public void run() {
        System.out.println("son");
    }

}

 

posted @ 2022-04-15 23:04  胖虎9  阅读(30)  评论(0)    收藏  举报