栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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》”----------------------------------​

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723604.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号