继承
Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起继承关系。
public class son extends father {}
1.继承的好处
1)可以把多个子类中重复的代码抽取到父类中,提高代码的复用性。
2)子类可以在父类的基础上,增加其他的功能,使子类更加强大。
注意:
子类不能选择性继承父类;
Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点;
构造方法不会被子类继承,但可以从子类中调用父类的构造方法。
2.继承的特点
子类可以继承父类的属性和行为,但是子类不能继承父类的构造器。 Java是单继承模式:一个类只能继承一个直接父类。 Java不支持多继承、但是支持多层继承。 Java中所有的类都是Object类的子类。
解释:子类只能继承一个直接父类//一个儿子只能有一个父亲
支持多层继承//父亲的父亲叫爷爷
public class son extends father {}
public class father extends grandfather {}
3.继承后访问成员的访问特点
1)就近原则
优先在子类范围内找,然后在父类范围内查找。
如果出先重名成员,会优先使用子类的。如果在子类中想要使用父类的重名成员,使用super关键字。
格式:super.父类成员变量/父类成员方法。
this.子类成员变量/子类成员方法。
4.方法重写
在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。 方法重写的应用场景 当子类需要父类的功能,但父类的该功能不完全满足自己的需求时。 子类可以重写父类中的方法。
注意:重写的方法具有与其所重写的方法相同的名称、参数数量、类型和返回值。
多态
1.多态的概念
多态是方法或对象具有多种形态,是面向对象的第三大特征。
多态的前提是两个对象存在继承关系,多态是建立在封装的继承基础之上的。
2.多态的规则
1)一个对象和编译类型与运行类型可以不同。
2)编译类型在定义对象时,就确定了不能被改变,而运行内存是可以变化的。
3)编译类型看定义对象时=的左边,运行内存看=的右边。
3.多态的转型
1)向上转型
本质:父类的引用指向子类的对象。
语法:
父类类型 引用名 = new 子类类型(); //右侧创建一个子类对象,把它当作父类看待
2)向下转型
本质:一个已经向上转型的子类对象,将父类引用转为子类引用
语法:
子类类型 引用名 = (子类类型) 父类引用; //用强制类型转换的格式,将父类引用类型转为子类引用类型
接口
1.什么是接口?
接口是一种特定的语法和结构,是一系列方法的声明,是一些方法特征的集合。
声明接口的关键字是interface。
public interface usb{}//定义一个接口
public class couputer implements usb{}//创建一个类实现接口
2.定义接口的注意事项
接口中允许定义变量
接口中允许定义抽象方法
接口中允许定义静态方法
接口中允许定义默认方法
接口不允许直接实例化
接口可以是空的,既不定义变量,也不定义方法
接口的抽象方法不能生private、protected或者final。
3.接口的好处
1)使某些实现类具有我们想要的功能。
2)Java 原则上只支持单一继承,但通过接口可以实现多重继承的目的。
异常
1.什么是异常
异常是指程序执行过程在的不正常情况
异常的作用:增强程序的健壮性。
异常在java中以类的形式存在,每一个异常类都可以创建异常对象。
2.异常的分类
异常分为编译时异常和运行时异常。
所有异常都是在运行阶段发生的。因为只有在程序运行阶段才可以new对象。
因为异常的发生就是new异常对象。
3.异常的处理方法
try...catch : 介绍 :
try...catch 的方式就是捕获异常。
捕获异常:Java中对异常有针对性的语句进行捕获
try...catch...finally: finally:常规情况下 finally 代码块中的代码, 是一定要执行的 !!!
try...catch ....catch.....catch.... 1. 可以使用多个catch捕获异常, 但是父类的异常要放在最后 1. 多个异常直接, 也可以使用 | 进行隔开