【JAVA】简述面向对象(OOP)

目录

类(class)

封装

继承(extends)

多态

引用类型转换


类(class)

this关键字:表示当前类的对象,在类被创建时自动产生,可以调用本类的属性,方法,构造方法。

类的对象的创建过程:开辟空间,实例化成员变量,执行构造方法,并将创建的对象赋值给对象名


封装

隐藏对象内部实现细节,控制对象的访问与修改权限,比如JavaBean设计模式,利用set(属性修改器)get(属性访问器)方法限制属性的控制,并且,用作JavaBean的类必须具有一个公共的、无参数的构造方法。


继承(extends)

在类中,类与类之间属性和方法的赠与和获得被称为继承。

具体做法是找到共性特征与相似行为,定义在父类中,实现重用,减少代码冗余,提高代码复用率。

当父类中的方法不能完全满足子类的需求时,可以对其进行重写。

继承后对象的创建过程:先创建父类对象,实例化父类成员变量,执行父类构造方法,在创建子类对象,实例化子类成员变量,执行子类构造方法

一个子类只能有一个父类,java中最大的父类是Object,没有写明extends的类,均继承于Object。

super关键字可以调用父类的属性,方法,构造函数。

父类中不能被继承的东西

父类的构造方法(但是在子类的构造中可以调用父类的构造)

父类的私有方法

父类中使用默认修饰符修饰的方法与属性在不同包的子类无法继承

不同访问修饰符能否被继承权限

访问修饰符

本类

本包(不同类)

不同包子类

其他

private

1

public

1

1

1

1

protected

1

1

1

default默认(可以不写)

1

1


多态

形成多态的条件:

存在继承或实现关系的两个类,

基类引用指向派生类对象(父类引用指向子类对象)

子类中存在对父类方法的重写

写法:父类 变量名 = new 子类( )

针对这个等式,对于变量:编译运行看左边,对于方法:编译看左,运行看右

多态情况下的访问特点:

存在同名变量时,访问父类成员变量。

存在同名的非静态方法时,访问子类中重写的方法。

存在同名的静态变量与静态方法时,访问父类的静态变量和静态方法。

不能访问子类独有的方法。


引用类型转换

当我们想在多态的情况下访问子类的独有方法时,可以通过向下转型

首先,多态就是一种向上转型:父类   变量名  = new 子类( )

那么,向下转型的写法应该是:子类 新变量名 = (子类) 变量名

这样就可以用新的对象来调用子类独有的方法了

向下转型的问题:

当一个父类有多个子类,子类a的向上转型,是否可以向下转型成子类b?

答案是不可以类型转换错误

所以在进行向下转型时,可以利用 instanceof 关键字来判断该数据的类型

用法变量名 instanceof 数据类型 (属于则返回true,不属于返回false)

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值