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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    1、编写一个简单的C++程序
    96. Unique Binary Search Trees
    python 操作redis
    json.loads的一个很有意思的现象
    No changes detected
    leetcode 127 wordladder
    django uwsgi websocket踩坑
    you need to build uWSGI with SSL support to use the websocket handshake api function !!!
    pyinstaller 出现str error
    数据库的读现象
  • 原文地址:https://www.cnblogs.com/lnn123/p/10216787.html
Copyright © 2011-2022 走看看