继承类中static数据值


 1 class A{
2 static int num = 1;
3 public static void Display(){
4 System.out.println( num );
5 }
6 }
7
8 class B extends A{
9 static int num = 2;
10 public static void Display(){
11 System.out.println( num );
12 }
13 }
14
15 class C extends A{
16 static int num = 3;
17 }
18
19 class D extends B{
20 static int num = 4;
21 }
22
23 public class StaticTest {
24 public static void main(String[] args){
25 A.Display();
26 B.Display();
27 C.Display();
28 D.Display();
29 }
30 }

基类中,静态值和静态函数可以被覆盖。但如果要访问继承类中的继承类的值,需要重写方法,不然访问的就是基类的值。

运行结果不是1,2,3,4,而是1,2,1,2。

继承类中static数据值,布布扣,bubuko.com

时间: 2024-08-24 18:38:11

继承类中static数据值的相关文章

Java继承类中static成员函数的重写

在java中,static成员函数是否可以被重写呢? 结论是,你可以在子类中重写一个static函数,但是这个函数并不能像正常的非static函数那样运行. 也就是说,虽然你可以定义一个重写函数,但是该函数没有多态特性.让我们测试一下: 1 class testClass1{ 2 static void SMothod(){ 3 System.out.println("static in testClass1"); 4 } 5 } 6 class testClass2 extends

【C++基础】 类中static private public protected

静态成员在一个类的所有实例间共享数据 “类属性”,是描述类的所有对象共同特征的一个数据项,对所有对象,它的值相同,static定义,为整个类所共有.相对于“实例属性” 如果static成员是私有类型,则只可通过共有静态成员函数访问 [注意]类中仅对成员进行声明而不初始化,必须在文件作用域的某个地方初始化 在class和main外即全局变量域,int Test::ite=0 ;   public private protected 派生类可访问的类型 可以 可以 可以         [C++基础

C++类中常量数据成员和静态数据成员初始化

常量数据成员初始化原则: 在每一个构造函数的初始化列表中初始化 静态数据成员初始化原则: 类内声明,类外初始化(因为它是属于类的,不能每构造一个对象就初始化一次) // test_max.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include <vector> using namespace std; class A { public: A(int i):a(0) {} A():

c++类中对数据成员进行初始化和赋值的区别

在c++中定义一个类 ,对于构造函数 我们经常是这么写的: class test { public: test(int n_x , int n_y) { x = n_x; y = n_y; } private: int x , y; }; 这中写法虽然是合法的但比较草率 在构造函数 test(int n_x , int n_y)中 , 我们这样实际上不是对数据成员进行初始化 , 而是进行赋值. 正确的是初始化应该是这样的: class test { public: test() {} test(

NSMutableDictionary 类中增加键值对方法分析

在iOS中可变字典增加一个键值对的方法有setObject: forKey: 和setValue : forKey: .为了方便我们把这两个方法简称为方法A和方法B. B这个方法中其中的value值是不能为nil,否则程序会出项崩溃.而A方法中的这个value可以为nil,但是当这个value位nil时,系统会自动调用removeObjectforKey:这个方法.这样就把这个键值对删除掉了.B方法中的key值可以是任意类型的,但是这个类型必须要实现NSCopying协议.而A方法中它的key值

C++中static数据成员详解

    本文和大家分享的主要是c++中static数据成员的相关用法及源码示例,希望能帮助大家更好的学习C++. static(静态存储)数据成员 StaticTest.cpp : 定义控制台应用程序的入口点. 1.知识点 static(静态存储)数据成员:编译时就被创建和初始化. 2.代码 #include "stdafx.h" #include using namespace std; class computer { private: float price; public: s

C#类中static变量用法分析

本文实例讲述了C#类中static变量用法.分享给大家供大家参考.具体分析如下: 先来看一段代码: 代码如下: using System; namespace Param { class Class1 { static int i = getNum(); int j = getNum(); static int num = 1; static int getNum() { return num; } [STAThread] static void Main(string[] args) { Co

将source类中的属性值赋给target类中对应的属性

/** * 对象的属性值拷贝 * <p> * 将source对象中的属性值赋值到target对象中的属性,属性名一样,类型一样 * <p> * example: * <p> * source: * <p> * String name; * String address; * Integer age; * Date birthday; * <p> * target: * String name; * String address; * String

如何在类中根据枚举值,获取枚举的message的工具类

枚举类为: public enum OrderStatusEnum implements CondeEnum{ NEW(0, "新订单"), FINISHED(1, "完结"), CANCLE(2, "取消"); private Integer code; private String msg; OrderStatusEnum(Integer code, String msg) { this.code = code; this.msg = msg