继承
类是对一类事物的抽象,比如:老师,学生
继承的本质是对类的抽象(父类是对子类的抽象),比如:它把老师类,学生类抽象出了人,人这个类拥有学生和老师类的共同特征,是一个更高的类
我觉得不如这样说:在这里,像人这样更高的类被称为父类,像学生,老师这样更低的类被称为子类
所以父类是很多子类的抽象,他拥有子类的共同特征,于是可以让子类继承父类的所有财产,并扩展自己的特点,所以子类即拥有父类的所有特点,又拥有自身独有的特点
extends关键字:我理解为继承,子类继承父类,用extends来表示
继承是类和类之间的关系,除此之外,类和类之间的关系还有依赖,组合,聚合等
举例说明:
人(父类)
public class Person { public int money; public void say(){ System.out.println("说了一句话"); } }
学生(子类)
//空的 public class student extends Person { }
执行类:
//student类中明明什么都没写,但是调用到了say方法,说明student类继承了Person类,子类会继承父类的所有财产,除此之外,他自己还有自己的方法,属性,它拓展了父类 public class zhixing { public static void main(String[] args) { student student = new student(); student.say(); } }
开启继承树的快捷键:点在一个类中,Ctrl+H,类的继承关系树状图就展示出来了
在Java中,所有的类都默认直接或间接继承object类
我们现在要思考一个问题:
按照继承,我们只有继承了一个类,才会拥有这个类的财产(方法和属性),那为什么我们好像并没有继承什么类,但我们的类就可以调用很多我们不知道的方法,这些方法是哪里来的呐?
回答:原来在Java中,所有的类都默认直接或间接的继承object类,object类就是所有类的父类,是对所有子类的抽象,也就是Java中所有的类,抽取出他们的共同特性,所以我们的类默认都是继承object类的,我们可以调用的属性方法也都是属于object类
我们还要思考一个问题:为什么我们没有创建对象,就不能调用object类中的一些属性和方法呐?
回答:因为只有静态(static)的属性和方法才可以直接被类调用,非静态的属性和方法都需要new一个对象,才可以被调用
Java中只有单继承,没有多继承,类可以直接的继承一个,但可以间接的继承多个。