java继承
子类 1.通过extends关键字,可以直接拥有来自于父类的属性和行为 (但是能不能访问要受访问修饰符的限制) 分清楚,,拥有和能不能直接操作到是两个不同的概念 2 公式: 子类 extends 父类 父亲的属性和行为 子类字自动继承; 但是子类不能继承父类的构造方法; 原因1:构造方法的语法要求是方法名必须和类名保持一致. 如果子类继承了父亲的构造,那么子类就会有一个叫父类的名的构造方法. 这一点与构造语法的语法冲突. 原因2: 构造方法的作用是产生对象的.父类和子类是分开的. 3.虽然父类的构造方法没有被子类继承,但在构造子类对象的过程中, 会先在内存中产生父类对象部分,再叠加子类特有部分,从而构造一个完整的子类对象. 也就是说new一个子类对象时,会先调用父类构造,在调用子类构造 类似于"内存叠加的方式" 4.如果子类定义了和父类一模一样的属性,那么子类对象身上会有两个该属性,一个在父类一个在子类 (1) 不应该这么设计,因为设计父类的时候已经考虑了共有,设计子类应该考虑特有. (2) 用super.属性名 代表的是定义在父类部分的同名属性名 (3) 用this.属性名 代表的是定义在子类部分的同名属性名 5.如果子类定义了和父亲一模一样的方法呢? 这叫做方法的"重写' 它是指所有类都有的共同行为,所以我们要定义在父类中 但是,不同的子类又有不同的实现