当前位置:网站首页>Composition of interface
Composition of interface
2022-07-05 22:54:00 【Anny Linlin】
One 、 The interface consists of :
Constant public static final modification
Abstract method public abstract modification
The default method (Java8)
Static methods (Java9)
Private method (Java9)
Two 、 Default method in interface
The default method format definition in the interface :
public default return type Method name ( parameter list ){}
Example :public default void show3(){}
matters needing attention : The default method in the interface is not an abstract method , So don't force it to be rewritten , But it can be rewritten , Remove keywords when rewriting default That's it .public It can be omitted , however default Cannot be omitted .
When to use , When the newly created class implements the methods in the interface , When it comes to implementing new methods , Add a default method to the interface . The newly created class can override this method .
The code is slightly …………
3、 ... and 、 Static methods in the interface
Define the method format in the interface :public static return type Method name ( parameter list ){}
Example :public static void show()
matters needing attention : Static methods can only be called by interface name , Cannot call... By implementing class name or object name .public It can be omitted , however static Don't omit .
package staticFunction;
public interface Inter {
void show();
default void method(){
System.out.println("default");
}
static void test(){
System.out.println("test");
}
}
package staticFunction;
public class InterImpl implements Inter{
@Override
public void show() {
System.out.println("InterImpl show");
}
@Override
public void method() {
System.out.println("InterImpl method");
}
//test Static methods cannot be overridden in implementation classes
}
package staticFunction;
/*
1、 Define an interface Inter, There are three ways : One is the abstract method , One is the default method , One is the static method .
void show();
default void method();
static void test();
2、 Define the implementation class of an interface
InterImpl
3、 Define a test class
Create objects in a polymorphic way in the main method and use
summary : Static methods in interfaces can only use interface calls , Implementation classes cannot override , Unable to call .
*/
public class InterDemo {
public static void main(String[] args) {
Inter inter = new InterImpl();
inter.method();
inter.show();
//inter.test(); You cannot use an implementation class to call a method in an interface
Inter.test(); // Use the interface to call the static method of the interface
}
}
Four 、 Static methods in the interface
Java9 Private method with method body is added in , This is actually java8 The foreshadowing is buried in :java8 It is allowed to define the default method and static method with method body in the interface , This will cause a problem : When two static methods or private methods contain the same piece of code , The program must consider extracting this code into a method , And this common method cannot be known by others , So you need to hide it with private , This is a java9 The necessity of increasing private land .
The format of private method definition in interface :
package privateFunction;
public interface Inter {
default void show1(){
System.out.println("show1 Start ");
// System.out.println(" I love my country !");
// System.out.println(" I love the capital Beijing !");
show();
//method(); // Call static private methods
System.out.println("show1 end !");
}
default void show2(){
System.out.println("show2 Start ");
// System.out.println(" I love my country !");
// System.out.println(" I love the capital Beijing !");
show();
//method(); // Call static private methods
System.out.println("show2 end !");
}
private void show(){
System.out.println(" I love my country !");
System.out.println(" I love the capital Beijing !");
}
static void method1(){
System.out.println("method1 Start ");
// System.out.println(" I love my country !");
// System.out.println(" I love the capital Beijing !");
//show();// Non static methods cannot be used
method();
System.out.println("method1 end !");
}
static void method2(){
System.out.println("method2 Start ");
// System.out.println(" I love my country !");
// System.out.println(" I love the capital Beijing !");
//show();// Non static methods cannot be used
method();
System.out.println("method2 end !");
}
static void method(){
System.out.println(" I love my country !");
System.out.println(" I love the capital Beijing !");
}
}
package privateFunction;
public class InterImpl implements Inter{
@Override
public void show1() {
Inter.super.show1();
}
@Override
public void show2() {
Inter.super.show2();
}
}
package privateFunction;
/*
1、 Define an interface Inter, There are four ways : Two are the default methods , Two are static methods .
default void show1()
default void show2()
static void method1()
static void method2()
2、 Define an implementation class of the interface
InterImpl
3、 Define test classes :
InterDemo
Create objects in a polymorphic way in the main method and use
summary : Static methods in the interface can only call private static methods , Non static methods can call either private static methods or default methods
*/
public class InterDemo {
public static void main(String[] args) {
Inter inter = new InterImpl();
inter.show1();
inter.show2();
Inter.method1();
Inter.method2();
}
}
边栏推荐
- C language - structural basis
- Common JVM tools and optimization strategies
- 谷歌地图案例
- 请求二进制数据和base64格式数据的预览显示
- Postman core function analysis - parameterization and test report
- 从 1.5 开始搭建一个微服务框架——日志追踪 traceId
- I closed the open source project alinesno cloud service
- Element positioning of Web Automation
- Editor extensions in unity
- QT creator 7 beta release
猜你喜欢

d3dx9_ What if 29.dll is missing? System missing d3dx9_ Solution of 29.dll file
![[error record] file search strategy in groovy project (src/main/groovy/script.groovy needs to be used in the main function | groovy script directly uses the relative path of code)](/img/b6/b2036444255b7cd42b34eaed74c5ed.jpg)
[error record] file search strategy in groovy project (src/main/groovy/script.groovy needs to be used in the main function | groovy script directly uses the relative path of code)

Vision Transformer (ViT)

Spectrum analysis of ADC sampling sequence based on stm32
![[groovy] mop meta object protocol and meta programming (Introduction to groovyobject interface | introduction to metaclass | implementation of class methods using groovyobject invokemethod)](/img/48/cd7960bbbc51a967b20da410bf81fe.jpg)
[groovy] mop meta object protocol and meta programming (Introduction to groovyobject interface | introduction to metaclass | implementation of class methods using groovyobject invokemethod)

The difference between MVVM and MVC

openresty ngx_lua请求响应

Qtquick3d real time reflection

查看网页最后修改时间方法以及原理简介

一文搞定class的微观结构和指令
随机推荐
【Note17】PECI(Platform Environment Control Interface)
航海日答题小程序之航海知识竞赛初赛
Activate function and its gradient
Arduino 测量交流电流
Common JVM tools and optimization strategies
[untitled]
Navigation day answer applet: preliminary competition of navigation knowledge competition
Hcip day 11 (BGP agreement)
[speech processing] speech signal denoising based on Matlab GUI Hanning window fir notch filter [including Matlab source code 1711]
如何创建线程
Methods modified by static
Distance from point to line intersection and included angle of line
VIM tail head intercept file import
Masked Autoencoders Are Scalable Vision Learners (MAE)
Nanjing: full use of electronic contracts for commercial housing sales
Un article traite de la microstructure et des instructions de la classe
从 1.5 开始搭建一个微服务框架——日志追踪 traceId
Codeforces Global Round 19
Leetcode weekly The 280 game of the week is still difficult for the special game of the week's beauty team ~ simple simulation + hash parity count + sorting simulation traversal
Starting from 1.5, build a micro Service Framework -- log tracking traceid