day10-继承父类并实现多个接口

This commit is contained in:
2026-07-27 11:54:16 +08:00
parent 90076a68f7
commit 8b17ba1eb3
5 changed files with 79 additions and 0 deletions
@@ -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();
}
}
@@ -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");
};
}
@@ -0,0 +1,8 @@
package com.inmind.extends_implements06;
//接口1
public interface MyInterface1 {
void method1();
void sameMethod();
void method();
}
@@ -0,0 +1,8 @@
package com.inmind.extends_implements06;
//接口2
public interface MyInterface2 {
void method2();
void sameMethod();
void method();
}
@@ -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功能");
}
}