java面向对象知识点汇总

面向对象的三大特征

封装 ,继承,多态

封装
隐藏实现细节,对外提供访问方式

1、封装方法:将代码封装成一个方法
2、封装属性:将属性使用,提供get,set方法
3、封装类:将属性和方法,封装在一个类中

好处:
提高安全性,提供复用性
javabean类的写法:

1、类名public
2、有无参构造器
3、将属性私有化(private)
4、有get()和set()方法

成员变量局部变量
位置方法
默认值
生命周期随着对象的创建而创建,消失而消失随着方法的调用而存在,方法的结束而消失
所在内存位置

当成员变量和局部变量重命名时

public void test(int a){
	this.a = a;
}	
this.a ----->成员变量
a ---------->局部变量

成员变量和局部变量

继承
减少了代码的冗余,提高代码复用性,便于功能的拓展,为之后多态性的使用提供了前提。

class A{}------>父类
class B extends A{}----->子类
特点

1:java是单继承 一个子类只能有一个父类
2:java是多层继承
3: Object 是所有类的父类 ,一个没有继承关系的类 会默认继承 Object
4:java中的继承 是一种 “假继承” “伪继承”;子类初始化之前 先完成父类的初始化。子类使用的内容 其实是父类对象的使用。

thissuper 的关系
this 为当前的对象
super 为父类的对象
this()super() 获得对应的构造器
-->必须是代码的在所有的构造器中,不写的话 会默认调用父类的无参数构造super()

>>当子类和父类定义了同名的属性时
super.属性   可以调用父类父类声明的属性
>>子类重写了父类中的方法时
super.方法   调用的是父类中被重写的方法

多态
父类的引用指向子类的对象(将子类对象看成父类)。

Person p = new Man();
编译看左边,运行看右边。
**只适用于方法,属性的编译和运行都看左边。
class Person{}
class Man extends Person{}
前提

1、有继承或者实现关系
2、父类引用执行子类对象

多态中的方法调用问题:

1:如果多态产生 子类只能调用父类存在的方法
2:如果多态产生 ,父类有该方法 , 子类没有该方法 ,直接执行父类的方法
3:如果多态产生 父类有该方法 , 子类也有该方法 ,直接调用子类自身的方法

instanceof的使用:

用于避免向下转型时出现ClassCastException异常,判断为true才向下转型。

为什么向下转型?

有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。使用向下转型才能调用子类特的属性和方法。

a instanceof A
判断a对象是否是类A的实例,如果是就返回true,否则返回false。
a所属类必须与类A是子父类关系,否则会编译错误

向下转型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值