• 编译时类型 和运行时类型的 区别(1)


    class T{
    void f(int x){
    System.out.println("int in T:" +x);
    }
    void f(double x){
    System.out.println("double in T:"+x);
    }
    void f(Object x){
    System.out.println("Object in T:" +x);
    }
    }

    class S extends T{
    void f(int x){  //子类覆盖基类方法
    System.out.println("int in S:" +x);
    }
    void f(float x){
    System.out.println("float in s:" +x);
    }
    }


    public class quest3{
    public static void main(String[] args) {
    T t=new S();
    // t编译时类型 调用 T的方法 并判断子类是否有覆盖

    t.f(20); // 基类方法被子类覆盖 输出子类 int in s

    t.f(20L); //基类方法
    t.f(3.5f); //基类方法
    t.f(3.5); //基类方法
    t.f("abcdef"); //基类方法
    }
    }

    输出结果:

    int in S:20
    double in T:20.0
    double in T:3.5
    double in T:3.5
    Object in T:abcdef

  • 相关阅读:
    Memcached安装
    linux 安装telnet
    varnish应用
    linux 安装apache
    varnishlog、Varnishstat详解
    varnish CLI管理
    varnish 子程序流程
    python3 cms识别类
    python3 fofa爬取类
    每日健康打卡
  • 原文地址:https://www.cnblogs.com/jiangyi666/p/5753555.html
Copyright © 2020-2023  润新知