zoukankan      html  css  js  c++  java
  • java编程思想-多态

    java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是动态绑定即运行时绑定。

    public class test
    {
        private void f()
        {
            System.out.println("private f()");
        }
        public static void main(String[] args)
        {
            test t = new Derived();
            t.f();
        }
    }
    
    class Derived extends test
    {
        public void f()
        {
            System.out.println("public f()");
        }
    }
    /*
    private f()
    private 方法被自动认为是final方法,没有多态,静态绑定,直接调用基类的方法
    */

    只有普通的方法调用可以是多态的,如果你直接访问某个域,这个访问将在编译期进行解析,没有多态

    class Super
    {
        public int field = 0;
        public int getField(){return field;}
    }
    class Sub extends Super
    {
        public int field =1;
        public int getField(){return field;}
        public int getSuperField(){return super.field;}
    }
    public class test
    {
        public static void main(String[] args)
        {
            Super sup = new Sub();
            System.out.println(sup.field+"  "+sup.getField());
            Sub sub = new Sub();
            System.out.println(sub.field+"  "+sub.getField()+"  "+sub.getSuperField());
        }
    }
    /*
    0  1
    1  1  0
    */

    如果某个方法是静态的,它的行为不具有多态性。

    class Super
    {
        public static void getField(){System.out.println("Super");}
    }
    class Sub extends Super
    {
        public static void getField(){System.out.println("sub");}
    }
    public class test
    {
        public static void main(String[] args)
        {
            Super sup = new Sub();
            sup.getField();
        }
    }
    /*
    Super
    */
  • 相关阅读:
    JAVA框架 Spring 事务
    JAVA框架 Spring 调用jdbcsuport简化开发
    JAVA框架 Spring JDBC模板
    JAVA框架 Spring AOP注解
    JAVA框架 Spring AOP--切入点表达式和通知类型
    JAVA框架 Spring AOP底层原理
    JAVA框架 Spring junit整合单元测试
    JAVA框架 Spring 注解注入
    JAVA框架 Spring 引入多个配置文件
    django序列化
  • 原文地址:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/4895684.html
Copyright © 2011-2022 走看看