其他分享
首页 > 其他分享> > 多态

多态

作者:互联网

多态

                 有继承关系

                 子类重写父类的方法

public class Person {

    public void say(){
        System.out.println("say 哈喽");
    }


public class Student extends Person{

    @Override  //方法重写   快捷键:Alt+Insert
    public void say() {
        System.out.println("say 古德拜");
    }

    public  void cry(){
        System.out.println("哭死了");
    }
}



public class Amplication {

    public static void main(String[] args) {

        //一个对象的实际类型是确定的
        //可以只想的引用类型就不确定了:父类的引用指向子类

        //Student 能调用的方法都是自己的或者父类的
        Student s1 = new Student();
        //Person 父类型:可以指向子类,但是不能调用子类独有的方法
        Person s2 = new Student();

        //对象能执行哪些方法,主要看对象左边的类型,和右边的关系不大
        s1.say();
        s2.say();  //子类重写了父类的方法,所以执行子类重写之后的方法
    }
}
        /*
        多态注意事项:
            1.多态是方法的多态,属性没有多态
            2.父类和子类,有联系      类型转换异常!ClassCastException!
            3.存在条件: 继承关系,方法重写,父类引用指向子类对象! Father f1 = new Son();

                1. static 方法,属于类,它不属于实例
                2. final 常量
                3 Private 方法

        */

 

                 父类引用指向子类对象

标签:子类,多态,say,父类,方法,public
来源: https://www.cnblogs.com/Hangli123/p/16632965.html