JAVA学习(六):JAVA中的继承及其常见有关问题分析

JAVA学习(六):JAVA中的继承及其常见问题分析

JAVA中的继承及其常见问题分析


1、JAVA中继承的定义


JAVA中,类的继承是通过扩展其他类而形成新类来实现的,原来的类称为父类(Super Class)或基类,新的类称为原来类的子类或派生类。在子类中,不仅包含了父类的属性和方法,还可以增加新的属性和方法,从而使得父类的基本特征可被所有子类对象共享。

注:类的继承并不改变类成员的访问权限,也就是说,如果父类的成员是公有的、被保护的或默认的,它的子类仍具有相应的这些特性。

/******************************************************************/
//类继承的定义格式
Class ChildClass extends FatherClass
//ChildClass类继承FatherClass ,ChildClass是子类,FatherClass是父类
{
//类的主体
}
/******************************************************************/

JAVA的继承规则:JAVA不支持多重继承,只允许一个类直接继承另一个类,即子类只能有一个父类,也就是说,extends关键字后面只能有一个类名。尽管一个类只能有一个直接的父类,但是它可以有多个间接的父类。


2、JAVA中常见问题


在继承中常遇到下图中的问题:

JAVA学习(六):JAVA中的继承及其常见有关问题分析

以下结合代码进行分析:

产生问题的代码如下:

public class Ooprogram {	//	父类
	public void say(){
		System.out.println("我是父类!");
	}
	public class ChildOoprogram extends Ooprogram{	//子类继承父类
		public void childsay(){
			System.out.println("我是子类!");
		}
	}
	public static void main(String [] args) {
		Ooprogram father=new Ooprogram();	//创建父类
		father.say();	//父类调用父类
		ChildOoprogram child=new ChildOoprogram();	//	创建子类
		child.say();	//子类调用父类
		child.childsay();	//子类调用子类
	}
}


正确的代码如下:

public class Ooprogram {	//	父类
	public void say(){
		System.out.println("我是父类!");
	}
	public class ChildOoprogram extends Ooprogram{	//子类继承父类
		public void childsay(){
			System.out.println("我是子类!");
		}
	}
	public static void main(String [] args) {
		Ooprogram father=new Ooprogram();	//创建父类
		father.say();	//父类调用父类
		ChildOoprogram child=father.new ChildOoprogram();	//	创建子类
		child.say();	//子类调用父类
		child.childsay();	//子类调用子类
	}
}


它们的区别在于:如何创建子类,即:

ChildOoprogram child=new ChildOoprogram();	//	创建子类

与

ChildOoprogram child=father.new ChildOoprogram();	//	创建子类








版权声明:本文为博主原创文章,未经博主允许不得转载。