继承中成员变量的特点
package com.ys_01;
/*
* 继承中成员变量的特点:1 子类的中没有这个方法,那就调用父类的
* 2 子类中重写了这个方法,那就是调用子类的
*
*
* 另外,方法的重载是:在一个类中,有多个重名的方法,但是其参数不同(数量,类型,顺序),与返回值无关
* 方法的重写是:在子父类中,子类的方法和父类完全一样,调用子类对象时,用的是子类的方法
*
*
* 方法重写的应用场景:父类的方法不满足或不能完全满足子类的需要,此时重写,
* 同时还可以通过super.方法调用父类的,
*
* 方法重写的注意事项:不能重写父类的私有方法,子类的权限必须>=父类的
*
*
*/
public class ExtendsDemo04 {
public static void main(String[] args) {
Son2 s = new Son2();
s.haveFun();
}
}
class Dad2{
public void haveFun() {
System.out.println("打打牌");
System.out.println("回家被老婆说");
}
}
class Son2 extends Dad2{
public void haveFun() {
System.out.println("打打游戏");
}
}
继承中构造方法的特点
package com.ys_01;
/*
* 继承中构造方法的执行顺序:
*
* 在有子父类继承关系的类中,子类创建对象,调用子类的构造方法,
* 此时如果子类的构造方法的第一行没有调用父类的构造方法,则会默认的调用父类的无参构造
* 注意:肯定是会先执行父类的构造方法,因为要给父类的成员变量初始化,子类可能会使用到
*
* 我们可以使用super()在子类构造方法中的第一行来调用父类的构造方法
*/
public class ExtendsDemo05 {
public static void main(String[] args) {
Zi z = new Zi();
}
}
class Die{
public Die() {
System.out.println("我是父类无参构造");
}
public Die(int num) {
System.out.println("我是父类有参构造");
}
}
class Zi extends Die{
public Zi() {
// super();
this(2);
System.out.println("我是子类无参构造");
}
public Zi(int num) {
System.out.println("我是子类有参构造");
}
}
运行结果:
我是父类无参构造
我是子类有参构造
我是子类无参构造
继承的优缺点 :
优点:1 提高了代码的复用性
2提高了代码的可维护性
缺点:类的耦合性增加了(开发的原则是高类聚低耦合 内聚指
自己完成某件事的能力,耦合指类与类的关系)