当前位置:网站首页>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();
}
}
边栏推荐
- 记录几个常见问题(202207)
- 如何快速理解复杂业务,系统思考问题?
- I closed the open source project alinesno cloud service
- audiopolicy
- 點到直線的距離直線的交點及夾角
- [groovy] groovy dynamic language features (automatic type inference of function arguments in groovy | precautions for function dynamic parameters)
- Opencv judgment points are inside and outside the polygon
- How can easycvr cluster deployment solve the massive video access and concurrency requirements in the project?
- 请求二进制数据和base64格式数据的预览显示
- 解决thinkphp启动时“No input file specified”的问题
猜你喜欢

Metaverse ape ape community was invited to attend the 2022 Guangdong Hong Kong Macao Great Bay metauniverse and Web3.0 theme summit to share the evolution of ape community civilization from technology

Element positioning of Web Automation

Error when LabVIEW opens Ni instance finder

Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem

Vcomp110.dll download -vcomp110 What if DLL is lost

MoCo: Momentum Contrast for Unsupervised Visual Representation Learning

Hcip day 12 (BGP black hole, anti ring, configuration)

Ultrasonic sensor flash | LEGO eV3 Teaching

Navigation day answer applet: preliminary competition of navigation knowledge competition

Starting from 1.5, build a micro Service Framework -- log tracking traceid
随机推荐
Hcip day 12 (BGP black hole, anti ring, configuration)
MCU case -int0 and INT1 interrupt count
Nanjing: full use of electronic contracts for commercial housing sales
分布式解决方案选型
Overview of Fourier analysis
【无标题】
请求二进制数据和base64格式数据的预览显示
點到直線的距離直線的交點及夾角
透彻理解JVM类加载子系统
Ultrasonic sensor flash | LEGO eV3 Teaching
Common JVM tools and optimization strategies
QT creator 7-cmake update
openresty ngx_lua正則錶達式
一文搞定class的微观结构和指令
Opencv judgment points are inside and outside the polygon
[speech processing] speech signal denoising based on Matlab GUI Hanning window fir notch filter [including Matlab source code 1711]
QT creator 7 beta release
Why does the C# compiler allow an explicit cast between IEnumerable< T> and TAlmostAnything?
Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem
BFC block level formatting context