• 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 }
  • 相关阅读:
    年末deadline汇总
    [线性代数]2016.12.19周一作业
    [线性代数]2016.12.15周四作业
    Android SDK的安装与环境变量的配置
    安装JDK环境变量的配置
    Python中单引号,双引号,三引号
    带有支付功能的产品如何进行测试
    Android稳定性测试工具Monkey的使用
    mysql数据库单表增删改查命令
    svn
  • 原文地址:https://www.cnblogs.com/kkkky/p/6381552.html
Copyright © 2020-2023  润新知