1)继承是类和类之间的一种关系
除此之外,类和类之间的关系还有依赖、组合、聚合等。
2)继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。
子类继承父类,使用关键字extends来表示
例如:
public class student extends Person{
}
3)子类和父类之间,从意义上讲应该具有"is a"的关系.
例如:
student is a person
dog is a animal
4)类和类之间的继承是单继承
一个子类只能"直接"继承一个父类,就像是一个人只能有一个亲生父亲
一个父类可以被多子类继承,就像一个父亲可以有多个孩子
注:java中接口和接口之间,有可以继承,并且是多继承。
5)父类中的属性和方法可以被子类继承
子类中继承了父类中的属性和方法后,在子类中能不能直接使用这些属性和方法,是和这些属性和方法原有的修饰符(public protected defaul private)相关的。
例如:
父类中的属性和方法使用public修饰,在子类中继承后"可以直接"使用
父类中的属性和方法使用private修饰,在子类中继承后"不可以直接"使用
注:具体细则在修饰符部分详细说明
父类中的构造器是不能被子类继承的,但是子类的构造器中,会隐式的调用父类中的无参构造器(默认使用super关键字)。
注:具体细节在super关键字部分详细说明
6)Object类
java中的每一个类都是"直接" 或者 "间接"的继承了Object类.所以每一个对象都和Object类有"is a"的关系。从API文档中,可以看到任何一个类最上层的父类都是Object。(Object类本身除外)
AnyClass is a Object
例如:
System.out.println(任何对象 instanceof Object);
//输出结果:true
注:任何对象也包含数组对象
例如:
//编译后,Person类会默认继承Object
public class Person{}
//Student是间接的继承了Object
public class Student extends Person{}
在Object类中,提供了一些方法被子类继承,那么就意味着,在java中,任何一个对象都可以调用这些被继承过来的方法。(因为Object是所以类的父类)
例如:toString方法、equals方法、getClass方法等
注:Object类中的每一个方法之后都会使用到.