diff --git a/day10/src/com/inmind/extends_implements06/Demo06.java b/day10/src/com/inmind/extends_implements06/Demo06.java new file mode 100644 index 0000000..9019ff2 --- /dev/null +++ b/day10/src/com/inmind/extends_implements06/Demo06.java @@ -0,0 +1,21 @@ +package com.inmind.extends_implements06; +/* +继承父类并实现多个接口 +单继承多实现的注意事项: +1.非抽象的子类实现类必须重写所有的抽象方法 +2.如果有抽象方法未实现,那么子类实现类必须是抽象类 +3.如果多个接口中有相同的抽象方法,那么非抽象的子类只需要实现一次即可 +4.如果多个接口和抽象父类中有相同的抽象方法,那么非抽象的子类也只需要实现一次即可 +5.如果抽象父类中拥有一个与多个接口中抽象方法,相同的普通方法,那么子类实现类, + 就可以选择性地重写或不重写该抽象方法,类的方法优先于接口的 + */ +public class Demo06 { + public static void main(String[] args) { + Zi zi = new Zi(); + zi.method1(); + zi.method2(); + zi.methodFu(); + System.out.println("---------------"); + zi.method(); + } +} diff --git a/day10/src/com/inmind/extends_implements06/Fu.java b/day10/src/com/inmind/extends_implements06/Fu.java new file mode 100644 index 0000000..1c8e399 --- /dev/null +++ b/day10/src/com/inmind/extends_implements06/Fu.java @@ -0,0 +1,11 @@ +package com.inmind.extends_implements06; + +public abstract class Fu { + public abstract void methodFu(); + + public abstract void sameMethod(); + + public void method(){ + System.out.println("父类中与接口中同名抽象方法的普通方法method"); + }; +} diff --git a/day10/src/com/inmind/extends_implements06/MyInterface1.java b/day10/src/com/inmind/extends_implements06/MyInterface1.java new file mode 100644 index 0000000..abb5294 --- /dev/null +++ b/day10/src/com/inmind/extends_implements06/MyInterface1.java @@ -0,0 +1,8 @@ +package com.inmind.extends_implements06; +//接口1 +public interface MyInterface1 { + void method1(); + void sameMethod(); + + void method(); +} diff --git a/day10/src/com/inmind/extends_implements06/MyInterface2.java b/day10/src/com/inmind/extends_implements06/MyInterface2.java new file mode 100644 index 0000000..2db7208 --- /dev/null +++ b/day10/src/com/inmind/extends_implements06/MyInterface2.java @@ -0,0 +1,8 @@ +package com.inmind.extends_implements06; +//接口2 +public interface MyInterface2 { + void method2(); + void sameMethod(); + + void method(); +} diff --git a/day10/src/com/inmind/extends_implements06/Zi.java b/day10/src/com/inmind/extends_implements06/Zi.java new file mode 100644 index 0000000..e5b7481 --- /dev/null +++ b/day10/src/com/inmind/extends_implements06/Zi.java @@ -0,0 +1,31 @@ +package com.inmind.extends_implements06; +//单继承多实现 +public class Zi extends Fu implements MyInterface1,MyInterface2{ + + @Override + public void methodFu() { + System.out.println("子类重写父类methodFu"); + } + + @Override + public void method1() { + System.out.println("实现类重写method1"); + } + + @Override + public void sameMethod() { + System.out.println("实现类重写多个接口的相同方法sameMethod"); + } + + @Override + public void method2() { + System.out.println("实现类重写method2"); + } + + @Override + public void method() { + super.method();//沿用父类原始的功能 + //扩展 + System.out.println("子类扩展了新的method功能"); + } +}