类的继承,方法重载,方法覆盖

1、继承extends

先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一班类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类,超类。Java不支持多重继承,子类只能有一个父类。(C++不是)

子类的权限一定大于父类的权限

父类private的不能被继承

final 类final方法:不能被继承

java语言中:java只支持单继承,不支持多继承(c++支持)。
* eg:b继承a,就不能继承b或其他类
* 因为多继承容易带来安全隐患:当多个父类中定义了相同内容,
* 当功能内容不同时,子类对象不确定要运行哪一个.
* 但是java保留这种机制。并用另一种形式来完成表示。多实现。

同一个包中和不再同一个包中的继承

2、方法重载

如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。

方法名相同

方法的参数类型,个数顺序至少有一项不同

方法的返回类型可以不相同

方法的修饰符可以不相同

main方法也可以被重载

3、方法覆盖

如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。

子类的方法名称返回类型及参数签名 必须与父类的一致

子类方法不能小于父类方法的访问权限

子类方法不能抛出比父类方法更多的异常

方法覆盖只存在于子类和父类之间,同一个类中只能重载

父类的静态方法不能被子类覆盖为非静态方法

子类可以定义于父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法(满足覆盖约束),

而且Java虚拟机把静态方法和所属的类绑定,而把实例方法和所属的实例绑定。

子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。
静态只能静态覆盖。

父类的私有方法不能被子类覆盖

父类的抽象方法可以被子类通过两种途径覆盖(即实现和覆盖)

父类的非抽象方法可以被覆盖为抽象方法

继承的利弊和使用原则:

继承数的层次不可太多

继承数的上层为抽象层

(1)定义了下层子类都用友的相同属性和方法,并且尽可能默认实现,从而提高重用性

(2)代表系统的接口,描述系统所能提供的服务

继承关系最大的弱点:打破封装

精心设计专门用于被继承的类

(1)对这些类必须提供良好的文档说明

(2)尽可能的封装父类的实现细节,把代表时间细节的属性和方法定义为private类型

(3)如果某些实现细节必须被子类访问,定义为protected类型

(4)把不允许子类覆盖的方法定义为final类型

(5)父类的构造方法不允许调用可被子类覆盖的方法

(6)如果某些类不是专门为了继承而设计,那么随意继承它是不安全的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值