黑马程序员--继承

------- android培训java培训、期待与您交流! ----------
继承特点:
1、提高了代码的复用性
2、让该类与类之间有了关系,有了这层关系才有了多态的特性

继承:
在子类中使用extend,使子类拥有父类的属性
java只支持单继承(因为多继承容易带来安全隐患。
如:当多个父类中定义了相同功能,当功能内容不同时,不确定运行哪一个)
但是java保留了这种机制,并用另一种体现形式来表示,叫做多实现
java支持多层继承

如:
public class Stu(){} 单纯的类
public class Stu extend Human{} Stu这个子类继承了Human这个父类的属性
Stu  叫做子类,或者派生类
Human 叫做父类,或者基类、超类

覆盖(重写)
当子类对象调用该函数,会运行子类的内容,如同父类被被覆盖掉一样,这种情况叫做重写,也叫覆盖

使用:
当子类继承了父类,沿袭了父类的特性到子类中
但是子类虽具备了该功能,但是功能的内容却和父类不一致
这时,没有必要定义新功能,而是使用覆盖特性,保留父类的功能定义,并重写该功能内容

注意:
1、子类覆盖父类,必须保证子类权限大于等于父类权限,否则编译失败(如果父类权限为private,那么子类访问不到,虽然可以正常编译运行,但是不叫覆盖)
2、静态只能覆盖静态

注意区别:
重载:只区分同名参数的参数列表(同一类中)
重写:子类和父类必须一模一样(继承中)

子类实例化过程
1、子类的构造函数被调用时,必须先调用父类的构造函数(可以理解为:没有父亲就没有儿子;默认调用无参的)
2、如果子类没有写super关键字,将默认调用父类的无参构造方法
3、super()代表调用父类无参构造函数,父类没有的话,将会默认添加
super()必须放在第一行,因为子类默认调用父类的无参构造函数,如果父类已经有了有参构造函数,则不会自动创建无参构造函数,所以添加构造函数的时候要添加两个
4、子类如果想指定调用父类的构造函数,采用的语法为:super(参数);

如:
package com.itheima.extendss.emp1;
class Fu2{
Fu2(){
System.out.println("fu run");
}
}
class Zi2 extends Fu2{
Zi2(){
System.out.println("zi run");
}
Zi2(int x){
System.out.println("zi+"+x);
}
}
public class ExtendsDemo2 {
public static void main(String[] args) {
Zi2 z=new Zi2();
Zi2 z2=new Zi2(4);
}
}
运行结果:
fu run
zi run
fu run
zi+4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值