zoukankan      html  css  js  c++  java
  • Java中的隐藏和覆盖(编译时类型和运行时类型)

    Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型

    编译时类型:由声明该变量时使用的类型决定

    运行时类型:由该变量指向的对象类型决定  

    关于继承

    一个类一般包含有 静态方法,一般方法,  静态属性,一般属性这四类,  在继承关系中都会被子类继承到,但是只有一般方法可以被重写,从而具有多态性,其他三个都是被继承或被隐藏

    如果被隐藏了,那么访问的就是子类中的属性,而不管是不是合理。

    示例如下: 

    public class Test {
        public static void main(String[] args)  {
            Circle circle = new Circle();//本类引用指向本类对象   
          //运行结果是
     
                //shape constructor
                //circle constructor

    Shape shape = new Circle();//父类引用指向子类对象(会有隐藏和覆盖)
           
    //运行结果是
               //shape constructor
               //circle constructor

           System.out.println(circle.name);
           circle.printType();
           circle.printName();
           //以上都是调用Circle类的方法和引用\
          //运行结果是
              //
    circle
              //this is circle
              //circle
            System.out.println(shape.name);//调用父类被隐藏的name属性
            shape.printType();//调用子类printType的方法
            shape.printName();//调用父类隐藏的printName方法 
            //运行结果是

                     //shape
                    //this is circle
                    //shape


    } } class Shape { public String name = "shape"; public Shape(){ System.out.println("shape constructor"); } public void printType() { System.out.println("this is shape"); } public static void printName() { System.out.println("shape"); } } class Circle extends Shape { public String name = "circle"; //父类属性被隐藏 public Circle() { System.out.println("circle constructor"); } //对父类实例方法的覆盖 public void printType() { System.out.println("this is circle"); } //对父类静态方法的隐藏 public static void printName() { System.out.println("circle"); } }
  • 相关阅读:
    springmvc整合mybatis框架源码 bootstrap
    观察者模式与.Net Framework中的委托与事件
    C#类型基础——学习笔记一
    知识图谱简介及常见应用场景
    Go语言实现bitmap算法
    互联网公司不同发展阶段需要什么样的技术负责人
    Go语言中使用切片(slice)实现一个Vector容器
    Go语言中defer语句使用小结
    使用interface与类型诊断机制判断一个类型是否实现了某个方法
    互联网产品发掘种子用户和意见领袖的方法
  • 原文地址:https://www.cnblogs.com/djma/p/14970454.html
Copyright © 2011-2022 走看看