Java基础----面向对象编程OOP之四

Java基础----面向对象编程OOP之四,第1张

Java基础----面向对象编程OOP之四 12.多态—OOP特征之三

多态是同一个行为具有多个不同表现形式或形态的能力。

多态:即同一方法可以根据发送对象的不同而采用不同的行为方式。

一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(指父类或者有关系的类)

多态注意事项:

多态是方法的多态,属性没有多态要有继承的关系:父类和子类,要有联系。否则类型转换异常 ClassCastException!存在条件:继承关系,方法需要重写,父类引用指向子类对象!有些方法不能被重写:

static方法:静态方法,属于类的方法,不属于实例,不可被重写final:常量,不可被重写private:私有方法,不可被重写

public class Application {
    public static void main(String[] args) {
        //一个对象的实际类型是确定的
        new Person();
        new Student();

        //对象可以指向的引用类型不确定:父类的引用指向子类
        //Student 子类:能调用的方法都是自己的或者继承自父类的!
        Student student1 = new Student();
        //Person 父类:可以指向子类,但是不能调用子类独有的方法!子类重写了方法时调用子类的方法!
        Person student2 = new Student();
        Object student3 = new Student();

        //对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!

        //方法的调用:父类和子类都有的方法
        student2.run();     //子类重写了父类的方法,则执行子类的方法
        student1.run();
        //方法的调用:子类有而父类没有的方法
        //student2.eat();   不可行,子类没有此方法!
        ((Student)student2).eat();  //如要调用子类特有的方法,需强制类型转换成子类类型
        student1.eat();
    }
}
public class Person {
    public void run() {
        System.out.println("Person run");
    }
}
public class Student extends Person {
    @Override
    public void run() {
        System.out.println("Student run");
    }
    public void eat() {
        System.out.println("Student eat");
    }
}

------------------------------“笔记整理自跟着《狂神说Java》”----------------------------------​

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5719159.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存