首页 > 代码库 > JAVA学习第十一课(继承)

JAVA学习第十一课(继承)

继承:(extends)

很多类,但是有一些成员,都是重复的,所以为提供复用性,把重复的代码抽取出来,就应用了继承

1.提高了代码的复用性

2.让类与类之间产生了关系,继承给多态提供了前提,没继承就没多态


class MAN
{
	String name;
	int age;
}
class student extends MAN //MAN是student的基类,student是MAN的子类
{
	void study()
	{
		System.out.println(name+"正在学习"+age);
	}
}
class teacher extends MAN
{
	void work()
	{
		System.out.println(name+"正在工作"+age);
	}
}
public class Main
{
	
	public static void main (String[] args) 
	{
		student BLF = new student();
		BLF.name = "BLF2";
		BLF.age = 20;
		BLF.study();
	}
} 


概念理解图:


单继承和多继承

JAVA支持单继承,不直接支持多继承,但是在C++的多继承机制上进行了改良。

定义:


1、单继承:一个子类只能有一个直接父类。

class A extends B ,B extends C;

2、多继承:一个子类可以有多个直接父类,(java中不允许)进行了改良。

class A extends B;A extend C;

多继承的优点:

类A 中有一些变量,类B中有一些东西,如果C继承了A和B,那么C就同时拥有了A,B的东西

C++多继承的缺点:

见代码:

#include <iostream>
using namespace std;
class A
{
public :
	void show()
	{
	cout<<"sd"<<endl;
	}
}
class B
{
public :
	void show()
	{
	cout<<"sssd"<<endl;
	}
}
class C :public A,public B//A,B的show都是同一个函数名
{

}
C BLF;
int main()
{
	BLF.show();//此处C++代码的多继承,就会出现混乱,必须让show,show1、show2,名字保证不一样,才可以
	return 0;
}


java的多继承:不直接支持多继承,因为,一旦父类中出现了相同的成员,就会产生不确定性,java改良了C++这一缺陷


java的多继承,是通过“多实现”的方式来实现

java支持多层(多重)继承:D 继承 C,C 继承 B,B继承A,就会出现继承体系,

注意:当要使用一个继承体系时:

1.查看体系的最顶层,了解体系的基本功能


2.创建体系的最子类对象,完成功能的使用

继承体系图:



未完......


JAVA学习第十一课(继承)