4-面向对象基础,下

1.继承中成员变量的关系
    在子类方法中访问一个变量
        首先在子类局部范围找;然后在子类成员范围找;最后在父类成员范围找;若找不到报错

2.继承中构造方法的关系
     子类中所有的构造方法默认都会访问父类中空参的构造方法:子类会继承父类中的数据,可能会使用,初始化子类之前,需要先完成父类数据的初始化,super();若父类中没有构造方法,子类通过super显示调用父类其他带参构造方法。

3.继承中成员方法的关系
    方法重写概述:子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。
    使用特点:如果方法名不同,就调用对应的方法;如果方法名不同,最终使用是子类自己的方法
    方法重写应用:子类需要父类的功能,但拥有自己特有的内容时。
    注意事项:父类中私有方法不能被重写;子类重写父类方法时,访问权限不能更低;父类的静态方法子类必须通过静态方法重写。

4.final关键字
    final关键字是最终意思, 可修饰类,变量,方法。
    修饰类,类不可被继承。
    修饰变量,变量将变为常量,只能被赋值一次。
    修饰方法,方法不能被重写
 final修饰局部变量:在方法内部,该变量不可以被改变;
                                 在方法声明上,1.基本类型作为参数时,值不能被改变;2.引用类型作为参数时,地址值不能被改变
 初始化时机在对象构造完毕前即可。

5.多态概述

    某一个事物,在不同时刻表现出来的不同状态。
    前提和提现:有继承关系;有方法重写;有父类引用指向子类对象。
    多态提高了程序的维护性(由继承保证),同时提高了程序的扩展性(由多态保证);存在的弊端不能直接访问子类特有功能
    多态转型:向上转型为父类引用指向子类;向下转型为父类引用转为子类对象

6.抽象类概述

    Java中没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。
    抽象类和抽象方法必须使用abstract关键字修饰
    抽象类不定有抽象方法,有抽象方法的类一定是抽象类
    抽象类不能被实例化,按照多态方式,由具体子类实例化(抽象类多态)。
    抽象类的子类要么是抽象类,要么重写抽象类中的所有抽象方法

7.抽象类的成员

    可以定义成员变量或常量
    可以有构造方法,但不能实例化,仅用于子类访问父类的初始化数据
    可以有抽象方法,限定子类必须完成的动作;也可由非抽象方法,提高代码复用性
    不含抽象方法的抽象类用于工具类中, 防止机制上的实例化。

8.接口

    接口使用interface关键字修饰,类实现接口使用implements表示
    接口不能实例化,按照多态方式,由具体的子类实例化(接口多态)
    接口的子类要么是抽象类,要么重写接口中的所有抽象方法

9.接口成员

    成员变量只能是常量,修饰符public static final
    没有构造方法,接口主要用于扩展功能
    成员方法只能是抽象方法,修饰符public abstract

10.类,接口关系 

    类和类存在继承关系,只能单继承,不可多层继承。
    类和接口是实现关系,类可以多实现,可以在继承一个类同时实现多个接口。
    接口和接口之间是继承关系,可单继承和多继承。

11.抽象类和接口区别

    成员上:抽象类中可包含变量,常量,抽象方法和非抽象方法;接口中仅包含常量和抽象方法
    关系上:类和类是单继承关系;类和接口是单实现和多实现的关系;接口和接口是单继承和多继承关系。
    设计理念上:抽象类被继承体现 is a关系,共性功能;接口被实现体现like a关系,扩展功能。

12.包package

    package语句必须位于程序中第一句;一个java文件中只能有一句;若无package,默认无包名。

13.权限修饰符 

    public:同一类;同一包;不同包子类;不同包其他类
    protected:同一类;同一包;不同包子类
    默认:同一类;同一包
    private:同一类

14.类及其组成可用修饰符

    类:默认;public;final;abstract。自定义以public居多
    成员变量:四类修饰符;final;static。自定义以private居多
    构造方法:四类修饰符。自定义以public居多
    成员方法:四类修饰符;final;static;abstract。自定义以public居多

15.内部类

    内部类可以直接访问外部类的成员,包括私有;外部类访问内部类成员,必须创建对象。
    内部类在类中定义的位置不同分为:成员内部类和局部内部类
    成员内部类外界创建方法:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
    内部类一般不让外界直接访问,修饰符常见为:private 为保证数据安全;static 为让数据访问更方便,被静态修饰的成员内部类只能访问外部类的静态成员
    局部内部类可以直接访问外部类的成员,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能
    局部内部类访问局部变量时,局部变量要使用final修饰(局部变量会随方法调用完毕而消失,此时局部对象并未从堆内存中消失,还要使用局部变量,为使数据能继续被使用,使用final修饰,这样堆内存中存储其实为常量值)

16.匿名内部类

    即是内部类的简化写法
    前提:存在一个类或接口(类可是具体类或抽象类);格式: new 类名或接口名() {重写方法}
    本质:是一个继承了类或者实现了接口的子类匿名对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值