📅  最后修改于: 2020-03-22 14:46:20             🧑  作者: Mango
先决条件:Java和多重继承
一个类可以扩展另一个类,并且//可以实现一个或多个接口。
// Java展示一个类可以实现多个接口
import java.io.*;
interface intfA
{
void m1();
}
interface intfB
{
void m2();
}
// 类实现两个接口
class sample implements intfA, intfB
{
@Override
public void m1()
{
System.out.println("在方法m1内");
}
@Override
public void m2()
{
System.out.println("在方法m1内");
}
}
class GFG
{
public static void main (String[] args)
{
sample ob1 = new sample();
// 代用两个方法
ob1.m1();
ob1.m2();
}
}
输出;
在方法m1内
在方法m2内
接口继承:接口可以扩展其他接口。
// Java展示接口的继承
import java.io.*;
interface intfA
{
void mangoName();
}
interface intfB extends intfA
{
void mangoInstitute();
}
// 类实现了两个接口
class sample implements intfB
{
@Override
public void mangoName()
{
System.out.println("芒果");
}
@Override
public void mangoInstitute()
{
System.out.println("文档");
}
public static void main (String[] args)
{
sample ob1 = new sample();
// 调用实现的方法
ob1.mangoName();
ob1.mangoInstitute();
}
}
输出:
芒果
文档
接口还可以扩展多个接口。
// Java展示接口继承
import java.io.*;
interface intfA
{
void mangoName();
}
interface intfB
{
void mangoInstitute();
}
interface intfC extends intfA, intfB
{
void mangoBranch();
}
// 类实现了两个接口
class sample implements intfC
{
public void mangoName()
{
System.out.println("芒果");
}
public void mangoInstitute()
{
System.out.println("文档");
}
public void mangoBranch()
{
System.out.println("太棒了");
}
public static void main (String[] args)
{
sample ob1 = new sample();
// 调用实现的接口
ob1.mangoName();
ob1.mangoInstitute();
ob1.mangoBranch();
}
}
输出:
芒果
文档
太棒了
为什么Java中的类不支持多重继承,但可以通过接口实现?
由于含糊不清,类不支持多重继承。在使用接口的情况下,没有歧义,因为直到Java 7的实现类才提供对方法的实现。从Java 8开始,接口也具有方法的实现。因此,如果一个类实现的两个或多个接口具有与实现相同的方法签名,则必须在类中也实现该方法。有关详细信息,请参见Java和多重继承。