java面向对象三大特性:封装、继承和多态--Java笔记

目录

一.封装

1.隐藏细节,保障数据安全

2.将属性私有化不能直接修改属性

3.提供get和set方法来获取和赋值 

二.继承

1.子类继承了父类所有的属性和方法,私有属性和方法要通过在父类创建公共的get方法来访问

2.子类必须调用父类的构造器来使父类完成初始化

3.创建子类对象时,不管使用哪个构造器默认都会调用父类的无参构造器(构造器里面默认有一个super())父类没有无参构造器则需要指定一个构造器来使父类完成初始化

4.java中object是祖宗类,其他所有类都是object的子类

5.一个类只能继承一个父类,子类与父类之间要存在某种关联,不能一个人继承一个日本人(因为日本人不是人)

三.多态

多态有方法的多态和对象的多态,重载和重写就体现出了多态

多态是建立在封装和继承基础之上的,且两个对象要存在继承关系

=左边为编译类型,=右边为运行类型,一个对象的编译类型和运行类型是可以不一致的,编译类型在定义时就确定了,而运行类型是可以改变的

​​

​​

1.向上转型

①.编译类型为父类,运行类型为子类

②.调用父类属性或方法时要遵循访问权限,不能调用子类的属性和特有的方法

2.向下转型

①.向下转型之前必须向上转型

②.可以调用子类所有的属性和方法

 3.对象的多态和instanceOf

​​ 

 instanceOf:用于判断对象的运行类型是否为某类型或某类型的子类型 

4.动态绑定机制

①.调用方法时,引用名会和运行类型(子类)进行绑定,首先找子类

②.属性没有动态绑定机制

5.多态数组

数组的定义类型为父类,保存的元素为子类

6.多态参数

定义方法时的形参为父类,传入的实参为子类


一.封装

1.隐藏细节,保障数据安全

2.将属性私有化不能直接修改属性

3.提供get和set方法来获取和赋值 

创建一个A类,创建四个属性,name和count设为公共的,password和money设为private的

创建两个构造器一个无参的,一个有参的,有参的里面调用set方法防止通过构造器来访问或修改属性值

创建一个scanner对象用来接收输入的值

分别给四个属性创建get和set方法,私有属性的get方法加上密码判断,所以的set方法加上一定的规定(毕竟不能太离谱)

 

创建一个info方法来获取全部信息(当然要输密码)

 一.创建一个A对象实例,用set方法来进行赋值,通过get方法来获取并打印,再通过info方法来获取信息,最后关闭scanner

可以看出name和count时直接输出的,剩下的都要输一遍密码

 二.通过构造器来进行赋值 ,然后调用info方法

输出:                                                                                                   故意输错一次

  

二.继承

1.子类继承了父类所有的属性和方法,私有属性和方法要通过在父类创建公共的get方法来访问

2.子类必须调用父类的构造器来使父类完成初始化

3.创建子类对象时,不管使用哪个构造器默认都会调用父类的无参构造器(构造器里面默认有一个super())父类没有无参构造器则需要指定一个构造器来使父类完成初始化

4.java中object是祖宗类,其他所有类都是object的子类

5.一个类只能继承一个父类,子类与父类之间要存在某种关联,不能一个人继承一个日本人(因为日本人不是人)

在A类创建四个不同访问修饰符的属性,创建一个get方法来访问私有的n4,创建一个有参构造器

B类继承A类,指定父类的有参构造器,然后用get方法来获取私有属性并打印。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值