封装
- 设置修饰符private
- 设置访问的公共方法
重写
重写是子类对父类允许访问方法的实现过程进行重新编写,方法头不能改变,方法体重新编写
注意:
方法的实现过程中会出现异常,抛出异常;所以子类方法抛出的异常不能比父类大
重写规则
- 方法名,参数列表,返回类型都要相同
- 访问权限不能比父类更严格
Public - protected - default - private
- final的方法和static方法不能重写
- 子类方法抛出的异常不能比父类更大
- 构造方法不能继承,构造方法不能重写
Super:调用父类的属性和方法
重载
方法名相同,参数列表不同,与方法其他无关
重写和重载的区别
操作方法(访问修饰符,返回类型,方法名,参数列表方法体)
重写 重载
访问修饰符 不能比父类严格 可以改
返回类型 不能修改 可以改
方法名 不能 不能
参数列表 不能 一定要改
方法体 可以改 可以改
多态:多种表现形式,形态
方法的重写和重载是java多态的不同表现
重载是本类的方法的多态表现
重写是父类与子类的多态表现
抽象类
不是为了创建对象,为了从扩展其他类设计的,让子类进行继承
其他的特点与普通类一样.一般是在设计阶段设计抽象类
- 抽象类不能实例化,通过抽象类的非抽象子类可以创建对象
- 抽象类的抽象方法不能有方法体,只能通过子类重写实现
- 子类必须重写抽象方法,除非子类是抽象类
- 构造方法,static类方法不能声明为抽象方法
- Final和static不能修饰abstract
接口
一个抽象类的方法都是抽象方法.属性是类变量
纯抽象 定义成接口
接口里面全部是抽象方法,通过子类继承接口,实现接口中的抽象方法
接口的语法:
[可见度访问修饰符]interface 接口名 {
//声明变量
//抽象方法
}
子类继承接口:
Class 类名 implement 接口 {
//实现抽象方法
}
接口中变量默认是静态常量
接口中方法默认是公共的抽象方法
接口中无构造方法
接口和抽象区别:
- 抽象类有普通方法,有方法体.接口中方法都是抽象方法,没有方法体
- 抽象类中有成员变量,接口中变量只能是public static final修饰.静态常量
- 接口中不能含有构造器,不能有静态代码块和静态修饰方法,抽象类有普通方法可用静态修饰,可用静态代码块
- 接口的方法一个类只能继承一个抽象类,一个类可以继承实现多个接口
- 抽象类的抽象方法的修饰符public,protected;接口的方法修饰符public
接口的多继承
Interface 接口 extends 接口1,接口2{ }
接口作为标记作用
标记接口
标记接口中无任何的方法,作用做标记
比如:java.awt.event
mouseListener继承标记接口EventListener
EventListener就是标机接口
只要继承了EventListener接口就是监听接口
面向接口编程
接口扩展性很强
耦合度不高
Java编程
多态是同一个方法具有多个不同的表现形式或者形态
多态的优点:
- 消除类型之间的耦合关系,耦合度低
- 灵活,简化(替换子类对象)
- 扩展,扩充(增加实现子类)
- 接口性(接口特点)
实现多态的三个条件:
- 继承关系
- 子类重写父类方法
- 父类变量引用子类对象
父类 变量 = new 子类对象.