继承

                       继承、多态、抽象类接口

一、继承
面向对象(oop)语言的三大特征:继承、封装、多态。
封装:通过private关键字修饰成员方法和成员变量。
对类的调用者来说,类的实现者只用提供一些公有的接口,对于类的学习成本降低。
class Cat extends Animal{
}
Cat:子类、派生类
Animal:父类、基类、超类
意义:1、代码的重复使用
2、代码简单
子类在构造时,需要先帮助父类构造。使用super();
this关键字和super关键字
this:代表当前对象的引用
this.data:代表当前对象的数据变量;
this.func():代表当前对象的方法;
this():代表的是当前对象的构造方法
super:代表父类对象的引用
super.data:访问父类的数据成员
super.func():调用父类的方法;
super():调用父类的构造方法
问题:子类继承了父类的那些东西?
除构造方法外所有的东西
被private关键字修饰的,被继承但是不能被访问。
private、protected、public、default
private:同一个包中同一个类访问
public:都可以访问到
protected:同一个包中同一个类可以访问、同一个包中不同类也可以访问、不同包中的子类也可以访问。
default:包访问权限:同一个包中同一类、同一包中不同类
final关键字(3种用法):
1、final修饰常量:只能被初始化一次
2、final修饰类:表示不能被继承
3、final修饰方法
二、多态
1、向上转型
Animal animal = new Cat();
animal.func();//通过父类引用。调用的方法一定是父类当中存在的。
向上转型:父类引用,引用子类对象
有三种方式进行向上转型:
1、直接赋值
2、方法的传参
3、方法的返回值
2、动态绑定
父类引用 引用子类对象,同时通过父类引用去调用父类和子类的同名覆盖方法(方法)
当前的方法需要重写
重写和重载
重写:1、方法名相同
2、参数列表相同
3、返回值相同
4、访问修饰限定符,父类的不能是private
5、子类的访问权限一定大于父类的访问权限
6、static
重载:1、方法名称相同
2、参数列表不同
3、返回值不做要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值