Sobes.tech
Junior — Middle

Որ բաղադրիչները կարող են լինել աբստրակտ դասում, բայց արգելված են ինտերֆեյսում։

sobes.tech AI

Պատասխան AI-ից

Java-ում ամփոփ դասը կարող է պարունակել հետևյալ բաղադրիչները, որոնք արգելված են ինտերֆեյսում (հատկապես Java 8-ից առաջ դասական տարբերակներում):

  • Կայքի դաշտեր (մեկնարկային փոփոխականներ) — ամփոփ դասը կարող է պարունակել կոնկրետ արժեքներով դաշտեր, մինչդեռ ինտերֆեյսը չի կարող ունենալ ոչ ստատիկ դաշտեր:
  • Կառուցողներ — ամփոփ դասը կարող է ունենալ կառուցողներ վիճակի սկզբնականացման համար, իսկ ինտերֆեյսները կառուցողներ չունեն:
  • Կարգավորումներ (Java 8-ից առաջ) — նախկինում, ինտերֆեյսները կարող էին պարունակել միայն ամփոփված մեթոդներ, իսկ ամփոփ դասերը՝ ինչպես ամփոփված, այնպես էլ կոնկրետ մեթոդներ:

Java 8-ից հետո, ինտերֆեյսները կարող են պարունակել ըստ նախնական (default) և ստատիկ մեթոդների, բայց դեռ չեն կարող ունենալ ոչ ստատիկ դաշտեր և կառուցողներ:

Օրինակ՝ ամփոփ դաս, որը պարունակում է դաշտ և կառուցող:

public abstract class Animal {
    protected String name; // դաշտ

    public Animal(String name) { // կառուցող
        this.name = name;
    }

    public abstract void makeSound();

    public void printName() { // կոնկրետ մեթոդ
        System.out.println("Name: " + name);
    }
}