Skip to content

Commit 09709eb

Browse files
committed
🍱 add default methods example
1 parent 09b9b45 commit 09709eb

File tree

10 files changed

+152
-0
lines changed

10 files changed

+152
-0
lines changed

java8-default-methods/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Java 8 默认方法和静态方法
2+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package io.github.biezhi.java8.defaultmethods;
2+
3+
public class BasicCalculator implements Calculator {
4+
5+
@Override
6+
public int add(int first, int second) {
7+
return first + second;
8+
}
9+
10+
@Override
11+
public int subtract(int first, int second) {
12+
return first - second;
13+
}
14+
15+
@Override
16+
public int divide(int number, int divisor) {
17+
if (divisor == 0) {
18+
throw new IllegalArgumentException("divisor can't be zero.");
19+
}
20+
return number / divisor;
21+
}
22+
23+
@Override
24+
public int multiply(int first, int second) {
25+
return first * second;
26+
}
27+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.github.biezhi.java8.defaultmethods;
2+
3+
/**
4+
* 计算器接口
5+
*
6+
* @author biezhi
7+
* @date 2018/2/11
8+
*/
9+
public interface Calculator {
10+
11+
int add(int first, int second);
12+
13+
int subtract(int first, int second);
14+
15+
int multiply(int first, int second);
16+
17+
int divide(int number, int divisor);
18+
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.github.biezhi.java8.defaultmethods;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public class UseCalc {
8+
9+
public static void main(String[] args) {
10+
11+
Calculator calculator = new BasicCalculator();
12+
int sum = calculator.add(1, 2);
13+
System.out.println(sum);
14+
15+
BasicCalculator cal = new BasicCalculator();
16+
int difference = cal.subtract(3, 2);
17+
System.out.println(difference);
18+
}
19+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.biezhi.java8.defaultmethods.conflict;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public interface A {
8+
9+
default void sayHello(){
10+
System.out.println("你好,我是 Java 8");
11+
}
12+
13+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package io.github.biezhi.java8.defaultmethods.conflict;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public class App implements A {
8+
9+
@Override
10+
public void sayHello(){
11+
System.out.println("你好,我是 APP");
12+
}
13+
14+
public static void main(String[] args) {
15+
new App().sayHello();
16+
}
17+
18+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.biezhi.java8.defaultmethods.conflict;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public class App2 implements A, B, C {
8+
9+
public static void main(String[] args) {
10+
new App2().sayHello();
11+
}
12+
13+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.github.biezhi.java8.defaultmethods.conflict;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public class App3 implements A, B {
8+
9+
@Override
10+
public void sayHello() {
11+
System.out.println("大家好,我系古天乐。探晚懒月,里没有晚过的传奇。" +
12+
"点一下,晚一连,撞贝不花一份钱。机要晚过了传骑,里就系我的凶第。");
13+
}
14+
15+
public static void main(String[] args) {
16+
new App3().sayHello();
17+
}
18+
19+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.github.biezhi.java8.defaultmethods.conflict;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public interface B {
8+
9+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package io.github.biezhi.java8.defaultmethods.conflict;
2+
3+
/**
4+
* @author biezhi
5+
* @date 2018/2/11
6+
*/
7+
public interface C extends A {
8+
9+
default void sayHello(){
10+
System.out.println("你好,我是 渣渣辉");
11+
}
12+
13+
}

0 commit comments

Comments
 (0)