Home >Java >Javagetting Started >Detailed introduction to java abstract classes

Detailed introduction to java abstract classes

王林
王林forward
2020-07-18 17:12:293132browse

Detailed introduction to java abstract classes

1. Distinguish between ordinary methods and abstract methods

(Recommended tutorial: java introductory tutorial)

In java, When a class method is modified by the abstract keyword, the method is called an abstract method, and the class in which the abstract method is located must be defined as an abstract class. When a method is defined as an abstract method, it means that the method will not have a specific implementation, but will be implemented through method overriding in a subclass of the abstract class.

2. The syntax format for defining abstract methods:

[访问修饰符]abstract<返回类型><方法名>([参数列表])

abstract keyword indicates that the method is defined as an abstract method.

3. Comparison between ordinary methods and abstract methods

Abstract methods need to be modified with the abstract keyword, but ordinary methods do not;

Ordinary methods have method bodies, but abstract methods do not method body.

4. Distinguish between ordinary classes and abstract classes

In Java, when a class is modified by abstract, the class is called an abstract class.

5. The difference between ordinary classes and abstract classes

Abstract classes need to be modified with the abstract keyword, but ordinary classes do not;

Ordinary classes can be instantiated, but abstract classes cannot be instantiated.

6. Code example:

Parent class

package demo.chongwu;

public abstract class Pet {
    private String name = "无名氏";
    private int health =100;
    private int love =0;
    //有参构造方法
    public  Pet (String name){
        this.name =name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHealth() {
        return health;
    }

    public void setHealth(int health) {
        this.health = health;
    }

    public int getLove() {
        return love;
    }

    public void setLove(int love) {
        this.love = love;
    }

    //抽象方法,输出宠物信息
    public abstract void print();

}

Subclass

package demo.chongwu;

public class Dog  extends Pet{
    private String strain;

    public Dog(String name, String strain) {
        super(name);
        this.strain = strain;
    }

    public String getStrain() {
        return strain;
    }

    public void setStrain(String strain) {
        this.strain = strain;
    }

    @Override
    public void print() {
        System.out.println("我的名字是"+this.getName()+"我是一只"+this.strain+".");
    }
}

Test:

package demo.chongwu;

public class Test {
    public static void main(String[] args) {
        Pet pet =new Dog("布尔","拉布拉多");
        pet.print();
    }
}
输出结果:
我的名字是布尔我是一只拉布拉多.

Description:

By abstracting the print method and rewriting the print method of the parent class in the subclass, you can instantiate the subclass to obtain the subclass object, and call the subclass method through the subclass object to output the subclass class information. Otherwise, if you do not do this, the abstract class cannot be instantiated directly, and the correct subclass information will not be output.

(Video tutorial recommendation: java video tutorial)

7. Advantages and limitations of abstract classes and abstract methods

Advantages:

The methods that have been implemented in the abstract class can be used by its subclasses, so that the code can be reused;

Provides abstract methods for subclasses and provides subclasses with their own uniqueness.

Limitations of abstract classes:

The methods of the parent class are not necessarily universal, because the methods of the subclass are special;

When the subclass inherits the abstract class of the parent class, write The methods that come out may have code duplication.

The above is the detailed content of Detailed introduction to java abstract classes. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete