一·类与类之间的关系
1横向关系
组合
依赖
聚合
关联
2纵向关系
泛化
实现
二·继承
类与类之间呈现上下级关系,通过继承可以对已有的类进行扩展,从而提高程序的扩展性,既保留原有功能,又增加新特性
继承关系的实现
修饰符 子类 extends 父类{
}
public class BigStudent extends Student{
}子类可以继承父类所有非私有的资源
1继承的特点
1.Java只能单继承
2.可以多重继承(A extends B , B extends C)
3.子类在构造对象时,首先执行父类构造器进行初始化(没有创建父类对象)
4.假如父类没有无参构造,子类要创建相同构造器使用super对父类构造器进行调用
5.构造器不被继承,只能被调用
6.子类可以使用父类的非私有资源,但是父类不能使用子类的资源
2this &super
在当前类中,使用当前对象,用this表示
在类中调用其它构造方法(很少使用)
public Student(String name, String sex, double height) {
this(); //在类中this加括号就是调用构造方法
this.name = name;
this.sex = sex;
this.height = height;
}在类中调用构造方法只能出现在构造器中
只能出现在构造方法的第一行
在类中调用其他资源
public void study(){
int name = 0;
this.name = "2e3";
this.getName();
System.out.println("我可以学习");
}super关键字
在子类中调用父类的其它资源
public void setA(int a) {
this.a = a; //调用自己的
super.getHeight();
super.study(); //调用父类的方法
}三·方法的重写
方法重写是实现多态的一种策略,它是由继承衍生出来的一种概念,子类继承父类之后,重写定制父类的方法,从代码的层面来看,父类的方法满足不了子类的需求,子类将父类的方法重写,这个方法称为方法重写
Father
public class Father {
public void study(){
System.out.println("正在学习种地。。。。。。");
}
}son类
public class Son extends Father{
public void study(){
System.out.println("正在学习编程。。。。。");
}
}
方法重写注意点:
1.必须存在继承关系
2.子类重写父类的方法
3.重写的方法名称必须和父类方法名称一致
4.参数列表必须一致
5返回值类型必须一致
6.访问权限不能低于被重写的父类方法
四·Object类
object类是所有Java类的祖先,任何时候创建的类都默认继承object类,object类中所有方法都可以被继承到子方法,子方法可以对这些方法重写,从而实现具体业务要求,常见方法:
equals方法和hashcode方法
重写equals和hashcode方法,让对象比较时不再比较地址值,而是比较成员变量值和hashcode值
toString方法
重写toString,让对象输出不再是输出地址值,而是输出成员变量值
Objects类
Objects类jdk1.7提供的一个工具类,它为我们提供了一个空指针安全的操作方法
People p = null;
People p1 = new People("农民","男","湖北",1500.00);
System.out.println(Objects.equals(p,p1));