11月16-19日笔记--面向对象进阶(上)

上一阶段学完了String和面向对象,这一阶段先学面向对象进阶上半部分,下一阶段学习下半部分。

static关键字

static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量。

被static修饰的成员变量,叫做静态变量(特点:被该类所有对象共享;调用方式:类名调用(推荐)/对象名调用。

被static修饰的成员方法,叫做静态方法。

特点:多用在测试类和工具类中,JavaBean类中很少会用。

调用方式:本类中方法名调用/类名调用(推荐)/对象名调用。

工具类  1,类名见名知意 2,私有化构造方法

是一类帮助我们做一些事情,但是不描述任何事物的类。

JavaBean类  用来描述一类事物的类。比如student,teacher,dog,cat等。

测试类  用来检查其他类是否书写正确,带有main方法的类,是程序的入口。

static的注意事项

静态方法只能访问静态变量和静态方法

非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法。

静态方法中不能使用this关键字

继承

Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起继承关系。

public class student extends person{}

student称为子类(派生类),person称为父类(基类或超类)

        使用继承的好处

可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性。

子类可以在父类的基础上,增加其他的功能,使子类更强大。

        如何使用继承:当类与类之间存在相同的内容,并满足子类是父类中的一种,就可以考虑使用继承,来优化代码。

格式:public class 子类 extends 父类{}

        继承的特点

Java只支持单继承,不支持多继承,但支持多层继承。

单继承:一个子类只能继承一个父类。

不支持多个继承:子类不能同时继承多个父类。

多层继承 子类A继承父类B,父类B可以继承父类C

例如:儿子不能同时继承父亲和叔叔/儿子可以继承于父亲,父亲可以再继承于爷爷

每一个类都直接或间接继承于Object

子类只能访问父类中非私有的成员

        成员方法是否可以被继承

虚方法表 非private 非static 非final

子类能继承父类中的那些内容

构造方法 非私有不能 private不能

成员变量 非私有能 private能

成员方法 虚方法表能 否则不能

        继承中成员变量的访问特点:先在局部位置找,本类成员位置找,父类成员位置找,逐级往上

成员变量的访问特点:就近原则(谁离我近,我就用谁)

        super关键字

super指父类中的成员,调用方式:super.类名

成员方法的访问特点:就近原则

        方法的重写

当父类中的方法不能满足子类现在的需求时,需要进行方法重写

书写格式

在继承体系中,子类出现了和父类中一摸一样的方法声明,我们就称子类这个方法是重写的方法。

@Override重写注解

1,@Override是放在重写后的方法上,校验子类重写时语法是否正确。

2,加上注解后如果有红色波浪线,表示语法错误。

方法重写注意事项和要求

1,重写方法的名称,形参列表,必须与父类中的一致,

2,子类重写父类方法时,访问权限子类必须大于等于父类(空着不写<protected<public)

3,子类重写父类方法时,返回值类型子类必须小于等于父类

4,私有方法不能被重写

5,子类不能重写父类的静态方法,如果重写会报错

        继承中构造方法的访问特点

父类中的构造方法不会被子类继承。

子类中所有的构造方法默认先访问父类中的无参构造,在执行自己。

原因:子类在初始化的时候,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。

子类构造方法的第一行语句默认都是:super(),不写也存在,且必须在第一行。

如果想调用父类有参构造,必须手动写super进行调用。

this关键字:理解为一个变量,表示当前方法调用者的地址值

super:代表父类存储空间,使用时会进入父类存储空间。

上篇先记到继承,下篇从多态记到结束。

如果有不对的地方,还请各位学长学姐指出来,感激不尽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值