Java阶段六:面向对象其他 (一)

目录

继承

修饰符

多态

抽象类

接口

继承

概述面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法
格式

public class 子类名 extends 父类名{}

例:public class Zi extends Fu{}
Fu:是父类,也被称为基类、超类
Zi:是子类,也被称为派生类

特点

子类可以有父类的内容

子类还可以有自己特有的内容

Object 类位于 java.lang 包中,编译时会自动导入

我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承Object,成为Object的子类

Object类可以显示继承,也可以隐式继承

好处

提高了代码的复用性(多个类相同的成员可以放到同一个类中)

提高了代码的维护性(如果方法的代码需要修改,修改一处即可)

应用场景

使用继承,需要考虑类与类之间是否存在is..a的关系,不能盲目使用继承

is..a的关系:谁是谁的一种,例如:老师和学生是人的一种,那人就是父类,学生和老师就是子类

变量访问特点在子类方法中访问一个变量,采用的是就近原则
子类局部范围找
子类成员范围找
父类成员范围找
如果都没有就报错(不考虑父亲的父亲…)
成员方法的访问特点通过子类对象访问一个方法
子类成员范围找
父类成员范围找
如果都没有就报错(不考虑父亲的父亲…)
关键字
构造方法的访问特点
super内存图
方法重写
注意事项

修饰符

概述:包就是文件夹,用来管理类文件的

定义格式:

package 包名; (多级包用.分开)
例如:package com.heima.demo;

导包意义:使用不同包下的类时,使用的时候要写类的全路径,写起来太麻烦了,为了简化带包的操作,Java就提供了导包的功能

格式:import 包名;
范例:import java.util.Scanner;

权限修饰符

状态修饰符final使用特点
注意事项

修饰变量:

final修饰变量时必须赋值
1. 定义时直接赋值
2. 在构造器中赋值
3. 在代码块中赋值
4. 如果final修饰的属性是静态的,初始化的位置只能是定义时和静态代码块中

修饰方法:

1. 如果不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承
2. final不能修饰构造方法

修饰类:

1. final修饰的类不能被继承,但是可以实例化对象
2. 如果一个类已经是final类了,就没有必要将方法修饰为final方法

final和static搭配使用,效率更高,不会导致类加载,底层编译做了优化处理

包装类 (Integer, Double, Float, Boolean等都是final),String也是final类
static使用特点
instanceof 操作符

x instanceof A:检验x是否为类A的对象,返回值为boolean型

要求x所属的类与类A必须是子类和父类的关系,否则编译错误

如果x属于类A的子类B,x instanceof A值也为true

多态

概述
成员访问
好处提高了代码的扩展性;定义方法时,如果将父类型作为参数,在使用方法时,可以传递任意子类对象
弊端不能使用子类的特有功能
向上转型

从子到父,父类引用指向子类对象

例:Animal a = new Dog();

向下转型

从父到子,父类引用转为子类对象

例:子类 对象名 = (子类)父类引用;

内存图

抽象类

概述
特点
成员特点

接口

概述一种公共的规范标准,只要符合规范标准,都可以使用。java中的接口更多的体现在对行为的抽象
特点
成员特点
类和接口的关系
抽象类和接口的区别


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

South.return

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值