C-继承与java继承之区别
目录
C++ 继承与java继承之区别
一、C++多重继承
C++的多重继承简要而言来说,就是区别单继承的。也就是说,C++中,类继承不像java那样只能实行单继承, 一个类能同时继承多个类 。这符合自然界的规律,比如一个人同时继承自己父亲与母亲的基因。
简单的C++多重继承代码案例:
#include <iostream>
using namespace std;
class Father
{
public:
Father()
{
cout<<"Father\n";
}
};
class Mother
{
public:
Mother()
{
cout<<"Mother\n";
}
};
class Child : public Father, public Mother
{
//之后称为类派生表,表的顺序决定基类构造函数调用的顺序,析构函数的调用顺序正好相反
};
int main()
{
Child child;
return 0;
}
二、java继承
1.在java中,类的继承是单一继承
也就是说,一个子类只能拥有一个父亲,所以extends只能继承一个类。
而java中 所谓的多重继承 ,就是例如A类继承B类,B类继承C类(其实质也是单继承),这里就是与C++的区别。
多重继承代码案例:
public class Animal
{
private String name;
private int id;
public Animal(String myName, String myid)
{
//初始化属性值
}
public void eat()
{
//吃东西方法的具体实现
}
public void sleep()
{
//睡觉方法的具体实现
}
}
public class Mouse extends Animal
{
...
}
public class Grey_Mouse extends Mouse
{
...
}
2.在java中,implements关键字可以达到变相的 类似 C++多重继承的效果(本质不同)
然而, 使用范围为类继承接口的情况 ,也就是说,一个类可以继承多个接口。比如,一个C类可以继承A接口和B接口。
public interface A
{
public void eat();
public void sleep();
}
public interface B
{
public void show();
}
public class C implements A,B
{
//...
}