0
点赞
收藏
分享

微信扫一扫

java继承的关系问题

扬帆远航_df7c 2022-04-14 阅读 63

java继承的关系问题

继承基础:

继承表示两个类之间的关系,是一种由已有类创造新类的过程。

子类不仅能从父类继承成员变量和成员方法,还可以重新定义

它们以及扩充新的内容。

优点:1.解决代码重复

2.加强父类

缺点:耦合度太高

private方法属于父类独有,子类无法继承

但是private属性可以被子类继承,但是不能直接调用

继承中的关系问题

public class Animal {
    public Animal() {
        System.out.println("父类构造方法执行");
    }
}

class cat extends Animal {
    public cat() {
        System.out.println("子类构造方法执行");
    }
    
}

class test {
    cat c = new cat();
}

/**
执行结果:
父类构造方法执行
子类构造方法执行

进程已结束,退出代码为 0
*/

//说明在创造子类对象时,先执行来自继承父类的构造方法,再执行自己的构造方法。


public class Animal {
    public Animal() {
        System.out.println("父类构造方法执行");
    }
}

class cat extends Animal {
    public cat() {
        System.out.println("子类构造方法执行");
    }
    
}

class test {
    cat c = new cat();
    Animal c1 = new Cat();
}
/**
执行结果:
父类构造方法执行
子类构造方法执行
父类构造方法执行
子类构造方法执行

进程已结束,退出代码为 0
*/
// 这说明Animal c1 = new Cat();父类的引用指向子类的对象是可以的
public class Animal {
    public Animal() {
        System.out.println("父类构造方法执行");
    }
}

class cat extends Animal {
    public cat() {
        System.out.println("子类构造方法执行");
    }
    
}

class test {
    cat c = new cat();
    Animal c1 = new Cat();
    cat c2 = new Animal();
}
/**
运行报错:
java: 不兼容的类型: com.mytest.test01.Animal无法转换为com.mytest.test01.cat
*/
//这说明子类的引用指向夫类的对象是不可以的

总之从广泛到具体即向下转型会自动转

而向下转型需要强转

举报

相关推荐

0 条评论