关于继承的练习(thinking in java),汽车

这篇博客探讨了Java中的继承概念,通过一系列练习展示了如何构建和初始化类,包括创建构造函数、类的组合与继承,以及static final与final的区别。在汽车类的上下文中,讨论了不同组件类的设计和向上转型的运用。最后,通过具体的代码示例解释了从beetle类继承的特定类型beetle的行为和输出解析。
摘要由CSDN通过智能技术生成

练习1:为C编写一个构造函数,并在C的构造函数中执行所有初始化。

class A{
   
    A(char c , int i){
   
        System.out.println("A(char , int)");
    }
}
class B extends A{
   
    B(String s , float f){
   
        super(' ',0);
        System.out.println("B(String , float)");
    }
}
public class C extends A{
   
    private char c;
    private int i;
    C(char a , int j){
   
        super(a,j);
        c = a;
        i = j;
    }
    B b = new B("hi" , 1f);//先构造A,再构造B
    public static void main(String[] args){
   
        C c = new C('b' , 2);//先构造一个A
    }

}

输出结果

A(char , int)//先生成A
//先生成A再生成B
A(char , int)
B(String , float)

练习二:创建一个名为Root的类,它包含一个名为Component1、Component2和Component3的类(您也创建了这个类)的实例。从Root派生一个类Stem,它也包含每个“Com”的一个实例。所有类都应该有默认的构造函数来打印关于该类的消息

class Component1{
   
    Component1(byte b){
   
        System.out.println("Com1(byte)");
    }
}
class Component2{
   
    Component2(short s) {
   
        System.out.println("Com2(short)");
    }
}
class Component3{
   
    Component3(int i){
   
        System.out.println("Com3(int)");
    }
}
class Root{
   
    Component1 c1root;
    Component2 c2root;
    Component3 c3root;
    Root(float f){
   
        c1root = new Component1((byte)0);
        c2root = new Component2((short)0);
        c3root = new Component3(0);
        System.out.println("Root(float)");
    }
}
public class Stem extends Root{
   
    Component1 c1stem;
    Component2 c2stem;
    Component3 c3stem;
    Stem(double d){
   
        super(2.78f);
        c1stem = new Component1((byte)1);
        c2stem = new Component2((<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值