Home > Java > javaTutorial > body text

Introduction to java interfaces and abstract classes (code examples)

不言
Release: 2019-01-31 10:52:02
forward
2609 people have browsed it

This article brings you an introduction to Java interfaces and abstract classes (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Interface:

(1)The variables defined in the interface are of public static final type, regardless of whether these modifiers are explicitly qualified, and must be explicitly initialized, otherwise an error will be reported:

public interface Interface1 {
    /**
     * VARIABLE1显式添加public static final修饰符
     * VARIABLE2隐式含有public static final修饰符
     */
    public static final String VARIABLE1="AAA";
                        String VARIABLE2="BBB";
    
    /**
     * VARIABLE3未显式初始化,代码变异报错:
     * The blank final field VARIABLE3 may not have been initialized
     */
    String VARIABLE3;                    
}
Copy after login

(2) The methods defined in the interface are all abstract methods, that is, they do not contain any method implementation :

a. If the class that implements the interface is a normal class (non-abstract class), all methods of the interface must be implemented, otherwise a compilation error will be reported;

b. If the class that implements the interface is abstract class, you can only implement some methods of the interface, otherwise an exception will be thrown;

public interface Interface2 {
    /**
     * method1方法定义显式添加public abstract修饰符
     * method2方法隐式含有public abstract修饰符,两个方法都是抽象方法
     */
    public abstract String method1();
                    String method2();
}
Copy after login

/**
 * 普通类Class1实现Interface2接口,必须实现所有接口方法
 *
 */
public class Class1 implements Interface2 {

    @Override
    public String method1() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String method2() {
        // TODO Auto-generated method stub
        return null;
    }

}
Copy after login

/**
 * 抽象类Class2实现Interface2接口,可以只实现方法method1
 */
public abstract class Class2 implements Interface2 {

    @Override
    public String method1() {
        // TODO Auto-generated method stub
        return null;
    }

}
Copy after login

Abstract class:

(1)Abstract classes are also classes. Like ordinary classes, they can have ordinary variables, implemented methods, and structures. Functions, but cannot be instantiated and can only be used to inherit;

Ordinary methods must have method bodies, abstract methods cannot bring method bodies;

public abstract class AbstractClass1 {
    String variable1;//普通变量
    public static final String VARIABLE2="AAA";//定义静态常量
    public void method1(){  }//普通方法,必须有方法体
    abstract void method2();//抽象方法,不能有方法体
    
    AbstractClass1(){//可以定义构造函数,但抽象类不能实例化,只能被继承
        System.out.println("此为构造函数");
    }
}
Copy after login

There is another biggest difference between interfaces and abstract classes. A class can implement multiple interfaces, but can only inherit one class;

In practical applications, interfaces It is the most commonly used. If the implementations of multiple interfaces have common parts, you can consider extracting this part into an abstract class, and then inherit the abstract class. In other words, abstract classes provide the implementation of public methods, which can be quickly developed and managed uniformly, and allow your class to fully implement all its own methods without tight coupling problems.

The above is the detailed content of Introduction to java interfaces and abstract classes (code examples). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template