diff --git a/day10/src/com/inmind/extends_impls06/Demo05.java b/day10/src/com/inmind/extends_impls06/Demo05.java new file mode 100644 index 0000000..6f37ef8 --- /dev/null +++ b/day10/src/com/inmind/extends_impls06/Demo05.java @@ -0,0 +1,8 @@ +package com.inmind.extends_impls06; + +public class Demo05 { + public static void main(String[] args) { + Zi zi = new Zi(); + zi.sameMethod(); + } +} diff --git a/day10/src/com/inmind/extends_impls06/Fu.java b/day10/src/com/inmind/extends_impls06/Fu.java new file mode 100644 index 0000000..0ae96e6 --- /dev/null +++ b/day10/src/com/inmind/extends_impls06/Fu.java @@ -0,0 +1,10 @@ +package com.inmind.extends_impls06; + +//抽象父类 +public abstract class Fu { + public abstract void methodFu(); + //抽象父类中的普通方法 + public void sameMethod(){ + System.out.println("抽象父类中的方法sameMethod()"); + }; +} diff --git a/day10/src/com/inmind/extends_impls06/MyInterface1.java b/day10/src/com/inmind/extends_impls06/MyInterface1.java new file mode 100644 index 0000000..1bbe53a --- /dev/null +++ b/day10/src/com/inmind/extends_impls06/MyInterface1.java @@ -0,0 +1,6 @@ +package com.inmind.extends_impls06; + +public interface MyInterface1 { + void method1(); + void sameMethod(); +} diff --git a/day10/src/com/inmind/extends_impls06/MyInterface2.java b/day10/src/com/inmind/extends_impls06/MyInterface2.java new file mode 100644 index 0000000..54db885 --- /dev/null +++ b/day10/src/com/inmind/extends_impls06/MyInterface2.java @@ -0,0 +1,6 @@ +package com.inmind.extends_impls06; + +public interface MyInterface2 { + void method2(); + void sameMethod(); +} diff --git a/day10/src/com/inmind/extends_impls06/Zi.java b/day10/src/com/inmind/extends_impls06/Zi.java new file mode 100644 index 0000000..59a7a2a --- /dev/null +++ b/day10/src/com/inmind/extends_impls06/Zi.java @@ -0,0 +1,33 @@ +package com.inmind.extends_impls06; +/* +单继承多实现的注意事项: +1.非抽象的子类实现类必须重写所有的抽象方法 +2.如果有抽象方法未实现,那么子类实现类必须是抽象类 +3.如果多个接口中有相同的抽象方法,那么非抽象的子类只需要实现一次即可 +4.如果多个接口和抽象父类中有相同的抽象方法,那么非抽象的子类也只需要实现一次即可 +5.如果抽象父类中拥有一个与多个接口中抽象方法,相同的普通方法,那么子类实现类, + 就可以选择性地重写或不重写该抽象方法,类的方法优先于接口的 + + */ +public class Zi extends Fu implements MyInterface1,MyInterface2{ + @Override + public void methodFu() { + System.out.println("子类重写抽象父类中的抽象方法"); + } + + @Override + public void method1() { + System.out.println("实现类实现接口MyInterface1中的抽象方法"); + } + + @Override + public void sameMethod() { + System.out.println("实现类实现接口MyInterface1和MyInterface2中的同名抽象方法"); + } + + + @Override + public void method2() { + System.out.println("实现类实现接口MyInterface2中的抽象方法"); + } +}