面向对象之继承

一·类与类之间的关系

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));


版权声明:本文为qq_51691946原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。