zoukankan      html  css  js  c++  java
  • 多态中成员函数的特点--转载

    l  接口:理解为是一个特殊的抽象类,但它不是类,是一个接口

    n  接口的特点:

        1,定义一个接口用interface关键字

                interface Inter{}

            2,一个类实现一个接口,实现implements关键字

                class Demo implements Inter{}

            3, 接口不能直接创建对象

               通过多态的方式,由子类来创建对象,接口多态  

    n  接口中的成员特点:

            成员变量:

                只能是final 修饰的常量

                默认修饰符: public static final

            构造方法:

                无

            成员方法:

                只能是抽象方法

                默认修饰符: public abstract

    n  类与类,类与接口,接口与接口之间的关系

            类与类之间:继承关系,单继承,可以是多层继承

            类与接口之间: 实现关系,单实现,也可以多实现

            接口与接口之间:继承关系,单继承,也可以是多继承           

            Java中的类可以继承一个父类的同时,实现多个接口

    A. 在多态中成员函数的特点:
     在编译时期:参阅引用性变量所属的类中是否有调用的方法。如果由编译通过;
      在运行时期:参阅对象所属的类中是否有调用的方法。
      简单的总结就是:成员函数在多态调用时,编译看左边,运行看右边。

    B. 在多态中,成员变量的特点:

    无论编译和运行,都参考左边(引用型变量所属的类)

    C. 在多态中,静态(static)函数的特点:

    无论编译和运行,都参考左边。


    例如下面的代码:

    class Fu{
    int num=5;
    void method1(){
    System.out.println(" Fu Method_1");
    }
    void method2(){
    System.out.println(" Fu Method_2");
    }
    static void method4(){
    System.out.println(" Fu Method_4");
    }
    }
    class Zi extends Fu{
    int num=8;
    void method1(){
    System.out.println("Zi Method_1");
    }
    void method3(){
    System.out.println("Zi Method_3");
    }
    static void method4(){
    System.out.println(" Zi Method_4");
    }
    }
    public class DuoTaiDemo_1 {
    public static void main(String[] args){
    Fu f=new Zi();
    f.method1();
    f.method2();
    //f.method3();
    System.out.println(f.num);
    Zi z=new Zi();
    System.out.println(z.num);

    f.method4();
    z.method4();

    }

    }
    如果由f.method3();  那么编译不会通过,因为在Fu类中没有这个方法。

    num作为成员变量,无论编译和运行,都参考左边,也就是引用型变量所属的类,第一个是父类(Fu)中的num,第二个是子类(Zi)中的num。

    Method4作为静态(static)函数,无论编译和运行,都参考左边。

    最后程序的运行结果是:

    Zi Method_1
    Fu Method_2
    5
    8
    Fu Method_4
    Zi Method_4

    ---------------------
    作者:candy_crush
    来源:CSDN
    原文:https://blog.csdn.net/wang424313682/article/details/45556713
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    websocket初体验(能传文字和图片)
    展开折叠效果 height未知 transition无效
    微信小程序自定义键盘
    微信小程序 selectComponent 值为null
    css 斜线 animation
    【转】怎样在ubuntu12.04下创建一个启动器
    以ontouch为例说明android事件发送机制
    谈谈移动应用设计——从一个普通开发者的角度
    Launch error: Failed to connect to remote VM. Connection refused.的解决办法
    Beyond compare代码比较工具。
  • 原文地址:https://www.cnblogs.com/lnn123/p/10216787.html
Copyright © 2011-2022 走看看