zoukankan      html  css  js  c++  java
  • Java继承--覆盖

    java中支持单继承。不直接支持多继承,但对C++中的多继承机制进行改良。

    单继承:一个子类只能有一个直接父类。

    多继承:一个子类可以有多个直接父类(java中不允许,进行改良)。不直接支持,因为多个父类中有相同成员,会产生调用不确定性。
               在java中是通过"多实现"的方式来体现。

    java支持多层(多重)继承。

    C继承B,B继承A。就会出现继承体系。

    当要使用一个继承体系时:
    1,查看该体系中的顶层类,了解该体系的基本功能。
    2,创建体系中的最子类对象,完成功能的使用。

    --------------------------------------------------

    成员变量:

    本类的成员变量和局部变量同名用this区分。子父类中的成员变量同名用super区分。

    this和super的用法很相似。

    this:代表一个本类对象的引用。

    super:代表一个父类空间。

    --------------------------------------------------

     成员函数:

    当子父类中出现成员函数一模一样的情况,会运行子类的函数。这种现象,称为覆盖操作。

    函数两个特性:
    1,重载。同一个类中。overload
    2,覆盖。子类中。覆盖也称为重写,覆写。override

    覆盖注意事项:
    1,子类方法覆盖父类方法时,子类权限必须要大于等于父类的权限。
    2,静态只能覆盖静态,或被静态覆盖。

    什么时候使用覆盖操作?

    当对一个类进行子类的扩展时,子类需要保留父类的功能声明,但是要定义子类中该功能的特有内容时,就使用覆盖操作完成.

    简言之,保留父类功能的同时对父类功能进行更新、扩展。

    例:

     1 class Phone
     2 {
     3     void call()
     4     {}
     5     void show()
     6     {        
     7         System.out.println("number");
     8     }
     9 }
    10 
    11 class NewPhone extends Phone
    12 {
    13     void show()
    14     {
    15         System.out.println("name");  //新增了两个方法。
    16         System.out.println("pic");  
    17         super.show();  //继承了父类中的方法。
    18     }
    19 }

    例:(不常用,面试考。)

     1 class Fu
     2 {
     3     private int num = 4;
     4 
     5     public int getNum()   //私有成员不能直接继承,通过public函数调用。
     6     {
     7         return num;
     8     }
     9 }
    10 
    11 
    12 class Zi extends Fu
    13 {
    14     private int num = 5;
    15 
    16 
    17     void show()
    18     {
    19         System.out.println(this.num+"....."+super.getNum()); //此处调用父类中私有的num。
    20     }
    21 }
    22 
    23 
    24 class ExtendsDemo2 
    25 {
    26     public static void main(String[] args) 
    27     {
    28         Zi z = new Zi();
    29         z.show();
    30     }
    31 }
  • 相关阅读:
    [设计模式]C++实现单例
    JMeter基本使用
    Dev TextEdit限制只输入数字
    sql优化方式
    MySql中的索引
    SQL索引的概念
    mysql sql语句大全
    bandedGridView定位尾行(GridView通用)
    GridView中的下拉框赋值
    使得 XtraEditors.TextEdit 失去焦点(LostFocus)的方法
  • 原文地址:https://www.cnblogs.com/kkkky/p/6381552.html
Copyright © 2011-2022 走看看