Java基础入门-多态

Test()

复制代码
package polymorphism;

public class Test {
    public static void main(String[] args) {
        People s1 = new Student();//多态
        s1.run();//Student run fastly
        s1.tuy();//只有people有的函数也不报错  just people have
        // s1.test();报错
        //多态存在问题:不能直接调用子类独有方法,可以使用多态下的类型转换实现
        //自动类型转换: 父类 变量名=new 子类();
        //强制类型转换:子类 变量名 =(子类) 父类变量


        Student s2 = (Student) s1;//强制类型转换
        s2.test();//此时就可以调用test
        //强制类型转换注意事项:
        //1.存在 继承/实现关系 就可以在编译阶段强制类型转换,编译不会报错
        //2. 运行时,如果发现对象的真实类型和 强制转换后的类型不同,就会报类型转换异常 的错误 eg:将s1强制转换为Teacher类型时编译不会报错,但是运行时发现不是一个类型就会报错
//因此java建议:使用 instanceof 关键字判断当前对象的真实类型,再进行强转
        if (s1 instanceof Teacher) {
            Teacher s3 = (Teacher) s1;
        } else {
            System.out.println("不是同一类型");
        }
    }

}

People()

复制代码
package polymorphism;

public class People {
    public void run(){
        System.out.println("people can run");
    }
    public void tuy(){

        System.out.println("just people have");
    }
}

Student()类

复制代码
package polymorphism;

public class Student extends People{
    public void run(){
        System.out.println("Student run fastly");
    }
    public void test(){
        System.out.println("have a test");
    }
}

Teacher

复制代码
package polymorphism;

public class Teacher extends People{
    public void run(){
        System.out.println("teacher run slowly");
    }
    public void teach(){
        System.out.println("teach Students");
    }
}
相关推荐
要加油哦~2 分钟前
刷题 | 牛客 - js中等题-下(更ing)30/54知识点&解答
java·开发语言·javascript
五步晦暝9 分钟前
【Excel 扩展正则的能力】工作中赋予处理单元格文本的强大正则表达提取能力
开发语言·excel
gkdpjj13 分钟前
Linux网络 网络基础一
linux·服务器·开发语言·网络·后端·智能路由器·软件工程
程序员鱼皮24 分钟前
炸裂!Spring AI 1.0 正式发布,让 Java 再次伟大!
java·计算机·ai·程序员·互联网·开发
凤年徐42 分钟前
【数据结构初阶】顺序表专题
c语言·开发语言·网络·数据结构·c++·经验分享·笔记
俺不是西瓜太郎´•ﻌ•`1 小时前
欧拉降幂(JAVA)蓝桥杯乘积幂次
java·开发语言·蓝桥杯
2345VOR1 小时前
【Gurobi安装和申请教程附C#案例】
开发语言·c#·求解器·gurobi
橙子199110161 小时前
Kotlin 中该如何安全地处理可空类型?
开发语言·kotlin·log4j
神码小Z1 小时前
Spring Cloud Gateway 微服务网关实战指南
java·spring boot·spring cloud
ST_小罗1 小时前
【Web前端】JavaScript入门与基础(二)
开发语言·前端·javascript