java面向对象笔记

面向对象三要素

1.封装
将数据和操作数据的方法绑定起来,对外提供访问方法

2.继承
-定义:子类继承父类,并且子类可以重写父类的方法,让整个系统有了延展性
-原则:单继承,多层继承(儿子,爹,爷)

3.多态性
(1)概念:
    同样的对象调用同样的方法,却做了不同的事
(2)分为2类:
    编译时的多态性:方法重载
    运行时的多态性:方法重写
(3)多态的前提:
要有继承关系
要有方法重写
要有父类引用指向子类
(4)优缺点:
    优点:代码扩展性,可维护性,复用性
    缺点:不能访问子类的特有方法

抽象

将一类事物(对象)的共同特征总结出来,并不关心起实现细节,
只定义其该有的属性和行为(方法)。
a.概念
用abstract修饰,如果该类中有抽象方法,这个类就可被称为抽象类
b.作用
定义集成体系的共性功能(定义规则),即:
将共性的方法提取出来放在父类,
将特性的方法放在子类.
c.特点
(1)不能实例化
(2)抽象类的子类:要么是抽象类,要么重写父类中抽象方法
(3)有抽象方法的类一定是抽象类,但是抽象类不一定有抽象方法
d.abstract不能和哪些关键字共存
(1)static
static关键字修饰的方法可以用类名.方法名()调用,而abstract修饰的方法没有方法体
,类名.调用 抽象方法时没有意义的
(2)private
abstract是为了让子类强制重写,而private修饰的子类都不能访问
(3)final
abstract是为了让子类强制重写,final修饰的方法是不会让子类修改的

接口

a.概念
对外提供规则(暴露,静态)
b.特点
(1)成员变量只能是常量,并且是静态公共的,
public static final(加static方便调用)
(2)没有构造方法
(3)成员方法只能是抽象方法
(4)接口中所有的东西都是公开的
(5)类可以多实现接口
c.类和接口区别:
(1)成员区别:
接口成员变量只能是常量,方法只能是抽象,没有构造方法
抽象类成员变量可常量可变量,方法可抽象可不抽象,有构造方法
(2)关系区别:
类:单继承,多层继承
接口:可以多继承
类和接口:类可以实现多个接口
(3)设计理念
抽象类:定义继承体系的共性,is a
接口:定义的是继承体系的扩展,like a

面向对象(局部内部类访问局部变量的问题)

1.局部内部类访问局部变量必须要final修饰,AndroidStudio也会提示你
2.why:
局部变量的生命周期和方法一样,方法弹栈后局部变量也会消失;
如果这时候的局部内部类对象还没有马上消失想使用局部变量就没有了;
用final修饰了局部变量,在类加载的时候就会进入常量池,方法弹栈也在

匿名内部类

a.概念
内部类的简写,实质是集成了该类或实现了该接口的子类匿名对象
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 类和对象 对象的概念 什么是面向对象 类 什么是对象的属性 什么是对象的方法 类与对象的关系/与区别 什么是对象 ...
    1024号阅读 3,308评论 0 1
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,898评论 0 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,113评论 18 399
  • 我无法入睡, 夜色的窗外月儿清朗, 月光在树梢上荡漾, 鸟儿早已入梦乡。 我无法飞翔, 敞开的窗棂晚风潇然, 树影...
    艾克斯why阅读 2,720评论 4 9
  • 这本书买来好久了都没有看,今天无意中看到有同名电影就找来看,没有什么起伏跌宕的情节一切都是生活琐碎的事情...
    趙瑞阅读 1,612评论 0 0