java基础教程:面向对象编程之继承(15)


上节课我们学习了java面向对象的封装,相信很多人已经学会怎么创建一个对象类,并为其封装属性方法啦。

当然,这些需要慢慢练习理解。现在学会基本思路和方法就可以了。


除了面向对象的封装技术,面向对象还提供一种技术,称为继承。


今天的内容:

1、继承是什么?

2、继承有什么特点?

3、如何实现继承?

4、重写


第一部分:继承

继承,如何理解他呢?其实也非常简单。

例如,你是继承了父母的基因的。在你父母基因的基础上,你肯定也有自己的独特基因。你和父母之间存在继承关系。

这种关系一旦存在,基因的相似性是必然的,不可替换的。总结来说,你的基因=父母基因+你自己的基因。


那么,继承可以解决的问题也就是对象的丰富性和扩展性

比如,自然界有很多的对象存在共性,我们可以把这些共性的东西拿出来作为一个基类。

那么,在表示一个具体的对象时,我们只需要在共性的基础上加入不同的特性就能达到目的,不用再定义他和其他对象的共性。

举例来说,男人和女人都是人,我们可以把这两个对象的共性抽象出来,放在一个公共的父类:人  里。

当我们再定义男人或女人时,只需要继承这些共性,加入男人和女人的特性就可以啦。


我们给继承下个定义:

继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。

继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。


第二部分:继承的特点

继承的特点:

1、继承父类后,子类自动拥有父类的所有属性和方法

2、继承父类后,子类只能使用父类开放的属性和方法。

3、继承是单一的。一个类只能继承一个父类。

4、子类可以重写父类的方法。

5、子类不能继承父类的final方法。


第三部分:继承的实现

在java中,如何实现类与类的继承呢?

需要在定义类时使用extends关键字。

我们看看语法:


class SubClass extends ParentClass{}


我们用个例子看看。。



从这个例子可以看出,我定义的子类Son里没有编写任何方法,但是可以使用继承了父类Parent的setName和say方法。

同时,父类的属性name也再say方法里可以直接使用。因为继承了父类后,自动的拥有了父类的属性和方法。

所以说,继承的实现也非常简单。但是,想用好继承,却需要大量的实践和理解。


第四部分:重写

我们上面提到了,子类可以重写父类的方法

特别注意的是,虽然只能使用父类开放的方法,但是可以重写父类的所有方法

那么,到底什么是重写?

我们举个例子看看。

	class Parent{
		
		private void say(){
			System.out.println("aa");
		}
	}
	
	class Son extends Parent{
		
		private void say(){
			System.out.println("son");
		}
		
		public void publicSay(){
			say();
		}
	}

上面这个例子里,子类重写了父类的方法say。那么,如何判断是重写方法呢?

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

因为在java当中,方法的名称和参数组成了方法的签名。和返回类型无关

另外,需要注意的点是:重写时,访问权限控制符的范围只可以保持或增大,不能缩小。

访问权限控制符的范围从小到大:private->默认->protected->public


如此以来,我们如果在子类中,发现父类的某些方法并不适合子类,可以随时进行重写,使其满足子类的行为。

提升了继承的可扩展性。


以上,就是今天的内容:

1、继承是什么?
2、继承有什么特点?
3、如何实现继承?
4、重写


你学会了吗?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值