java_oop

方法的重载

概念:类似于自然语言中的一词多义
在同一个类中,一系列 方法名 相同 参数不同的方法,就构成了方法重载
参数不同:个数,类型,顺序
extends(扩展) A is a B A继承于B A extends B B父类(基类)A子类

1子类继承父类,继承了父类的属性和方法
2java中的继承都是单一继承
3一切类默认继承于object
4构造器不会被继承,子类实例化时,默认值通过super()调用父类无参构造器
5可以使用super指定调用父类有参构造器
6如果想通过super来调用父类构造器,那么super这句话必须出现在子类构造第一行
7当实例化子类对象时,会递归调用所有父类构造器

优点:提高了代码的重要性

方法重写

概念:子类提供和父类 方法名和参数(类型)完全一致的方法
@Override 标签,接下来的方法一定是一个重写的方法。
限制:两小(异常和返回值)一大 (访问修饰词)
一大:子类重写方法的 访问修饰词大于等于原方法
两小:返回值类型:
	若原方法返回值类型为基本数据类型(值类型),或void,
	那么子类重写方法返回值类型必须和父类一样。
	若原方法返回值类型为引用数据类型,那么子类重写方法的返回值类型
	可以是原方法返回类型的子类类型

多态:

前提:继承
体现:造型(转型)父类型 引用,引用到子类对象上(向上造型)
父类型 强转为 子类类型(向下造型)使用instanceof判定,不然易出 类转换异常
限制:引用对外呈现的特征,看类型,但是实际调用的方法,是重写后的方法

异常

抛出的异常:
若原方法有异常抛出,子类重写方法,可以不抛出异常
如果子类一定要抛出异常,可以是原方法抛出异常的子类异常
==throws== 抛
常见异常
==RuntimeException==运行时异常
==ArrayIndexOutofBoundsException==数组下标越界异常

修饰词

访问修饰词:可以修饰类,属性(成员变量),方法

   修饰词      同一个类      同一个包         子类       其他
   public      	T             T             T	      T
   protected    T			  T		 		T		  F
   default		T			  T				F  		  F
   private		T 			  F				F		  F

import导包

封装:属性尽可能私有,同时提供共有的get set访问方法
意义:
1保护数据--数据安全有效
2提高代码重用
3隔离变化
4对外隐藏算法逻辑         

API

API:
先查包,再找包,看里面的内容
java 会默认导入java.length.*  

abstract 抽象

抽象类:有抽象方法的类 都是抽象类,用abstract修饰
抽象方法:用abstract修饰,没有方法体,直接分号结尾
一个普通的类继承了抽象类,就必须重写 所有的抽象方法
抽象类 可以没有 抽象方法
抽象类 不可以 创建对象;但是 可以 定义引用,引用的具体的子类对象上(多态)
抽象类 有 构造器,也允许我们直接定义构造器,实例化子类对象时,供子类调用     

static静态关键字

概念:类的、一份、先加载
	静态关键字
	可以修饰:属性/成员变量、方法、代码块、类 
      
类的加载
1实例化对象
2调用静态成员(静态字段、静态方法)
3classa.forName()
类的顺序
1执行静态代码块(按自上而下)
2执行构造代码块
3执行构造器                                                                                        

类的实例化子类顺序(若为第一次)
先父类 后子类
1先加载父类静态 成员(按先后顺序 字段、代码块)
2父类 构造器代码块
3父类 构造器
4加载子类静态成员
5子类 构造器代码块
6子类 构造器

先父类 后子类
先加载(静态)后执行
先构造代码块 后构造器

final关键字

修饰:成员变量、方法、类

实际开发中:原则上不允许使用final修饰方法和类

经常使用final  和static任何修饰变量---常量

一般情况下常量名所有字母均大写

可以增加代码可读性

interface接口

接口:   interface  相当于C++的  纯虚类
1.接口中的变量 都是常量  接口中的方法 都是抽象的方法(jdk版本1.8后,默认方法)
2.如果一个类 实现(implements)接口,就必须实现所有的抽象方法
3.一个接口可以 继承(extends)另一个接口,表示概念的延续
4.一个普通的类 可以实现多个接口表示 一个概念 既是xxx也是xxx
5.接口 不能 创建对象,接口能定义引用,没有构造器

内部类

内部类:定义在类内部的类
类型使用频率
成员内部类
静态内部类较多
局部内部类较少-几乎不用 定义在方法内部,只在方法内有效
匿名内部类非常多
可以写在任何地方
语法更类似于 创建对象
A a=new A( );
这对{ }就是匿名类的类体,这里创建的对象 不是A类,而是匿名类对象
匿名类是对A快速继承/实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值