当前位置:网站首页>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();
}
}
边栏推荐
- Distance entre les points et les lignes
- 查看网页最后修改时间方法以及原理简介
- 【Note17】PECI(Platform Environment Control Interface)
- Global and Chinese markets for welding products 2022-2028: Research Report on technology, participants, trends, market size and share
- 谷歌地图案例
- Roman numeral to integer
- Nail error code Encyclopedia
- Leetcode daily question 1189 The maximum number of "balloons" simple simulation questions~
- d3dx9_ What if 29.dll is missing? System missing d3dx9_ Solution of 29.dll file
- openresty ngx_lua正则表达式
猜你喜欢

实现反向代理客户端IP透传

Nanjing: full use of electronic contracts for commercial housing sales

Golang writes the opening chapter of selenium framework

Google Maps case

Postman核心功能解析-参数化和测试报告

PLC编程基础之数据类型、变量声明、全局变量和I/O映射(CODESYS篇 )
![[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)

利用LNMP实现wordpress站点搭建

Paddy serving v0.9.0 heavy release multi machine multi card distributed reasoning framework

50. Pow(x, n). O(logN) Sol
随机推荐
Boring boring
Request preview display of binary data and Base64 format data
TOPSIS code part of good and bad solution distance method
Common model making instructions
d3dx9_ What if 29.dll is missing? System missing d3dx9_ Solution of 29.dll file
30 optimization skills about mysql, super practical
C language - structural basis
3 find the greatest common divisor and the least common multiple
二叉树(二)——堆的代码实现
First, redis summarizes the installation types
QT creator 7-cmake update
Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem
[groovy] mop meta object protocol and meta programming (Introduction to groovyobject interface | introduction to metaclass | implementation of class methods using groovyobject invokemethod)
Metasploit(msf)利用ms17_010(永恒之蓝)出现Encoding::UndefinedConversionError问题
QT creator 7 beta release
MoCo: Momentum Contrast for Unsupervised Visual Representation Learning
GWT module may need to be (RE) compiled reduce - GWT module may need to be (RE) compiled reduce
Hcip day 12 (BGP black hole, anti ring, configuration)
2022.02.13 - SX10-30. Home raiding II
The code generator has deoptimised the styling of xx/typescript. js as it exceeds the max of 500kb