1/* 2 * Copyright (c) 2024-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/*--- 17 desc: 09.05.Field_Declarations 18 name: 09.Classes/09.05.Field_Ddeclarations/class_with_optional_attributes_0006.ets 19 tags: 20 ---*/ 21 22class A { 23 static foo(): number { 24 return 5 25 } 26} 27 28class B extends A { 29 foo: number = 10 30} 31 32class C { 33 foo: number = 10 34} 35 36class D extends C { 37 static foo(): number { 38 return 5 39 } 40} 41 42class E { 43 static foo(): number { 44 return 5 45 } 46 foo: number = 10 47} 48 49function main() : void { 50 assertEQ(A.foo(), 5) 51 assertEQ(B.foo(), 5) 52 assertEQ(new B().foo, 10) 53 54 assertEQ(D.foo(), 5) 55 assertEQ(new C().foo, 10) 56 assertEQ(new D().foo, 10) 57 58 assertEQ(E.foo(), 5) 59 assertEQ(new E().foo, 10) 60}