2016/08/11 继承

继承 extends 只能继承一个父类

将重复的代码抽象到父类,使用继承优化代码


使用继承
编写父类:公共的属性和方法

编写子类,继承父类:子类特有的属性和方法

多态:父类引用子类对象实现

理解继承

子类访问父类成员:使用super关键字
访问父类属性:super.name; super代表父类对象
通过super来调用父类的方法、属性和构造
 
继承后的初始化顺序
父类属性---父类构造方法---子类属性 --子类构造方法

有些父类的不能继承
子类不能访问父类private成员 属性和方法
子类与父类不在同一个包里,默认访问修饰符修饰的成员
构造方法   可以调用父类的构造,但是不能继承父类的构造

访问修饰符:protect 可以修饰属性和方法,本类、同包、子类可以访问

访问修饰符总结

访问修饰符本类同包子类其他
private可以   
默认friendly可以可以  
protected可以可以可以 
public可以可以可以可以

方法重写的规则
:有继承才有重写
在继承关系的子类中,在子类中重写父类的方法
重写的方法名、参数、返回值类型必须与父类相同
私有方法不能继承因而也无法重写

父类调用,子类实现

方法重写与方法重载
位置 方法名 参数表 返回值 访问修饰符
方法重写 子类 相同 相同 相同 不能比父类更严格
方法重载 同类 相同 不同 无关 无关

何时使用继承
:
继承与真实世界类似
符合is-a关系的设计使用继承
继承是代码重用的一种方式
将子类都有的属性和行为放到父类中

Java中也使用抽象类,限制实例化 abstract  不能被实例化,没有实例化的意义
抽象类的特点
不能被实例化,
如果一个类中有抽象方法,则这个类必须是抽象类
抽象类中可以有抽象方法,也可以没有
抽象方法
public abstract void sss();
没有方法体
抽象方法必须在抽象类里
抽象方法必须在子类中被实现,除非子类是抽象类

final用法

终极类不想再被继承
方法不希望被重写
终极属性不想再被修改

static
:
static可以用来修饰属性、方法和代码块
static修饰的属性和方法称为类属性(类变量)、类方法

静态属性,也可以称为类属性,
不会在内存中开辟新空间,只有一个,
静态方法:调用Statictest.test(); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值