一、java中的中类和类之间的组合关系
整体和部分关系:
1.聚合关系:关联的程度较低,可以单独存在
2.组合关系:两个关联的程度较高,
一个类A 作为属性存在B中。
3.依赖关系:两个类的关联程度比较高。相互依赖,相互依存。
4.关联关系:写法和整体和 部分的关系的写法一样。
面向对象的三大特征之一:继承。
关键字;extends修饰,用来描述两者的关系
例如:
class A extends B {
表示类A继承了类B
}
继承的使用注意点:
1.不能为了节省代码而乱继承。要想继承,必须存在继承的关系,例如狗不能继承人。
2.java中的继承属于单继承,一个子类只能有一个父类,但是父类可以有很多的子类,例如,一父亲可以有很多的儿子。
3.父类中一般是子类的公有的成员(属性和行为)。子类允许有自己独有的属性和行为。
4.父类的私有属性不可以被继承。
5.构造方法也是不能被继承的。
6.子类创建对象时候默认调用父类的无参构造。
7.父类中最好存在无惨的构造。
如果在子类中和父类的构造方法,会默认优先使用子类。
在创建对象的时候,会调用父类的无参构造,目的是将父类的属性初始化。
super关键字的使用:
用来引用父类的空间。
super关键字的使用:
1.在子类中直接调用父类的构造方法和成员变量。
使用注意点:
如果使用super调用父类的构造方法,那么super语句是子类的第一个语句,而且super关键字只能在子类中使用
this和super关键字的使用区别:
this关键字指的是当前的调用者对象,在子类中使用时,首先会在子类中查找属性和方法,如果没有,才会到父类中查找,
super关键字是指调用父类的构造方法,表示父类的空间引用,并且super关键字的使用必须要有继承,使用了super关键字,子类就会直接去父类查找
方法重写的注意点:
1.子类的方法必须和父类中方法同名
2.子类的参数类表要和父类的一样
3.返回值的权限修饰符必须大于或者等于父类的权限修饰符
4.返回值和父类的一样,或者是父类的的子类
5.子类的抛出的异常要小于等于父类的异常
方法重载使用注意点:
1.类中方法名一样。
2.参数列表不一样。
3.和返回值类型无关
二、抽象类:
用abstract关键字修饰;
存在一个事物行为,但是这个行为是不确定的,没有具体的实现,可以通过抽象类实现,把这种不确定的方法叫做抽象的方法;
抽象类的好处:强制实现本类中的某些方法
abstract 的使用注意事项:
1:abstract修饰的方法是抽象的方法,方法体不允许有主体;
2.一个类中如果有抽象方法,那么一定是抽象类,但是有抽象类不一定有抽象方法;
3.一个类如果继承抽象类,那么就必须重写抽象类的所有抽象方法
4.一个类中允许抽象类和非抽象类方法共存;
5.抽象类不能创建对象;
6.抽象类中可以定义构造方法
abstract 修饰的方法不能和以下关键字同时用:针对抽象方法.
不能和private 一起使用;
不能和static一起使用;
不能和final一起使用
java中接口:
java的接口是用来拓展子类的功能的,用interface 修饰,表示接口。
使用注意点:
1.方法定义没有主体,默认是抽象的方法。
2.默认常量,用public static final。
3.不能定义构造方法
4.必有用其他的类实现
5.如果是普通类实现接口,必须实现接口中的所有方法;
6.如果是抽象类,类就不一定需要实现接口中的方法;
7.接口支持多实现,类中可以有多个接口;
8.接口不能创建对象
接口的作用:
1.拓展类的功能;
2.定义约束条件;
3.代码的解耦。
多态的应用:
1.在一个方法中用于形参进行传递
2.在方法中用于返回值