【安卓学习笔记】JAVA基础Lesson7-继承

首先回顾之前学习的知识可知:一个类的组成有三个部分,构造函数成员变量成员方法(也就是成员函数)。

在面向对象的世界当中,继承就是一个类得到了另外一个类当中的成员变量和成员方法,在JAVA中只支持单继承;

如下两处代码:

代码段一:

class Lesson7{
	
	String str;
	int a;
	
	void funA{
		System.out.println("FunA:the Str = " + str + " the a = "+ a);
	}
}

代码段二:

class Lesson7_2 extends Lesson7{
	
}

代码段一是一个普通的类。

代码段二就使用了继承的方式定义。在是是有那个的时候用到了一个关键字"extends"。

其中Lesson7_2是子类,Lesson7是父类,在子类Lesson7_2中并没有定义任何的成员变量和成员方法,但是由继承的定义可知,Lesson7_2是包含有父类Lesson7中的成员变量和成员方法的。

编写测试代码如下:

class Test{
	public static void main(String args []){
		Lesson7_2 A = new Lesson7_2();
		A.str = "Lesson7_2";
		A.a = 20;
		
		A.funA();
	}
}

测试输出结果如下:

D:\Android\src>javac Lesson7.java

D:\Android\src>javac Lesson7_2.java

D:\Android\src>javac Test.java

D:\Android\src>java Test
FunA:the Str = Lesson7_2 the a = 20

D:\Android\src>

这也验证了子类Lesson7_2拥有父类Lesson7_2中的成员变量和成员函数。当然了,子类当中也可以加入一些父类没有的成员变量和成员函数。

如:

class Lesson7_2 extends Lesson7{
	String str2;
	int a2;
	
	void funA2(){
		System.out.println("It is funA2!");
	}
}

通过把共同的成员变量和成员函数放在父类里面去,用继承的方式也可以减少代码的重复量,同时在工程中修改代码上会减少很多工作量。

/**************************************************华丽分割线*******************************************/

上述已经提到,子类可以集成父类的成员函数和成员变量,但是父类的构造函数是无法集成的。这就有了子类调用父类构造函数super的用法,同样使用super调用父类的构造函数也是为了子类为成员变量赋值和减少重复代码。

如:

class Lesson7{
	
	String str;
	int a;
	
	void Lesson7(String str,int a){
		this.str = str;
		this.a = a;
	}
}


class Lesson7_2 extends Lesson7{
	super("Lesson7_2",20);
	System.out.println("this Lesson7_2 fun()");
}

这里需要注意以下几点:

当在生成子类的过程中没有使用super调用父类的情况下,编译器会自动的生成一条super();也就是默认调用父类中无参数的构造函数。使用super来调用父类的构造函数,在编程的时候需要把super函数放在第一句。super调用父类中哪一个构造函数取决于传入的形参,根据形参的顺序、类型、个数等相匹配得到将要调用的父类中的构造函数,这一特征跟之前讲述的this用法也比较相像。

By Urien 2017年8月28日 21:08:22

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值