day10-继承父类并实现多个接口
This commit is contained in:
@@ -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功能");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user