/*
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class A {
public a:int;
constructor(param: int=101) {
this.a = param;
}
public SetA(param: int = 99) {
this.a = param;
}
}
class C extends A {
static fs:int=102
fc:int=10001;
c:int;
public setC (param:int=this.fc) : void {
this.c = param;
}
public getC() : int {
return this.c;
}
static foo(param: int=C.fs) : int {
return C.fs+param;
}
}
function main(): void {
let b: C = new C();
arktest.assertEQ(b.a, 101);
b.setC();
arktest.assertEQ(b.getC(), 10001);
arktest.assertEQ(C.foo(), (C.fs*2));
}