下面是一个Java代码示例,实现了以上要求:
成都创新互联公司专注于河津企业网站建设,成都响应式网站建设公司,商城网站定制开发。河津网站建设公司,为河津等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
```java
// 定义Person类,具有身高/体重/年龄等属性
class Person {
int height;
int weight;
int age;
// 构造函数
public Person(int height, int weight, int age) {
this.height = height;
this.weight = weight;
this.age = age;
}
// 输出身高、体重、年龄信息的方法
public void display() {
System.out.println("身高:" + height + "cm");
System.out.println("体重:" + weight + "kg");
System.out.println("年龄:" + age + "岁");
}
// 打招呼的方法
public void say() {
System.out.println("大家好,我是一名普通人。");
}
}
// 由Person类派生出Usa类,增加爱好属性,覆盖父类方法
class Usa extends Person {
String hobby;
// 构造函数
public Usa(int height, int weight, int age, String hobby) {
// 调用父类的构造函数
super(height, weight, age);
this.hobby = hobby;
}
// 覆盖父类的display方法,增加输出爱好信息
public void display() {
super.display();
System.out.println("爱好:" + hobby);
}
// 覆盖父类的say方法,输出美式打招呼的信息
public void say() {
System.out.println("Hi, everyone! I am an American. Nice to meet you all!");
}
}
// 由Person类派生出China类,增加国籍属性,覆盖父类方法
class China extends Person {
String nationality;
// 构造函数
public China(int height, int weight, int age, String nationality) {
// 调用父类的构造函数
super(height, weight, age);
this.nationality = nationality;
}
// 覆盖父类的display方法,增加输出国籍信息
public void display() {
super.display();
System.out.println("国籍:" + nationality);
}
// 覆盖父类的say方法,输出中式打招呼的信息
public void say() {
System.out.println("大家好,我是一名中国人。很高兴认识大家!");
}
}
// 由China类派生出Guangxi类,增加语言属性,覆盖父类方法
class Guangxi extends China {
String dialect;
// 构造函数
public Guangxi(int height, int weight, int age, String nationality, String dialect) {
// 调用父类的构造函数
super(height, weight, age, nationality);
this.dialect = dialect;
}
// 覆盖父类的display方法,增加输出方言信息
public void display() {
super.display();
System.out.println("方言:" + dialect);
}
// 覆盖父类的say方法,输出关西方言打招呼的信息
public void say() {
System.out.println("嗨,同志们好啊! 我系一个桂平铁花郎,兴县塘豆腐买八两!");// 这里是广西壮话
}
}
public class Main {
public static void main(String[] args) {
// 创建一个Person对象
Person person = new Person(180, 75, 25);
System.out.print("Person的信息:");
person.display();
System.out.print("Person的招呼:");
person.say();
// 创建一个Usa对象
Usa usa = new Usa(175, 70, 30, "Basketball");
System.out.print("Usa的信息:");
usa.display();
System.out.print("Usa的招呼:");
usa.say();
// 创建一个China对象
China china = new China(170, 65, 28, "Chinese");
System.out.print("China的信息:");
china.display();
System.out.print("China的招呼:");
china.say();
// 创建一个Guangxi对象
Guangxi guangxi = new Guangxi(165, 60, 26, "Chinese", "桂林话");
System.out.print("Guangxi的信息:");
guangxi.display();
System.out.print("Guangxi的招呼:");
guangxi.say();
}
}
```
在上面的代码中,我们定义了一个`Person`类,它具有身高/体重/年龄三个属性,并实现了对这些属性进行输出和打招呼的方法。然后,我们创建了基于`Person`类的`Usa`类和`China`类,它们分别增加了爱好和国籍两个属性,并覆盖了父类的输出和打招呼方法。最后,我们还创建了基于`China`类的`Guangxi`类,它增加了方言属性,并覆盖了父类的输出和打招呼方法。在主函数中,我们创建了不同类的对象,并输出了它们的信息和打招呼语句。
SessionFactory sessionFactory = cfg.buildSessionFactory();
你没有理解这行代码的意义,这行代码cfg.buildSessionFactory()返回的不是SessionFactory,而是实现了SessionFactory 这个接口的一个类,这个具体实现了SessionFactory接口的类是在hibernate的配置文件中配置的
Java有八大基本类型,可以分为四类:
1、byte:
byte数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是-128(-2^7);
最大值是127(2^7-1);
默认值是0;
byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;
例子:byte a = 100,byte b = -50。
2、short:
short数据类型是16位、有符号的以二进制补码表示的整数;
最小值是-32768(-2^15);
最大值是32767(2^15 - 1);
Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;默认值是0;
例子:short s = 1000,short r = -20000。
3、int:
int数据类型是32位、有符号的以二进制补码表示的整数;
最小值是-2,147,483,648(-2^31);
最大值是2,147,483,647(2^31 - 1);
一般地整型变量默认为int类型;
默认值是0;
例子:int a = 100000, int b = -200000。
4、long:
long数据类型是64位、有符号的以二进制补码表示的整数;
最小值是-9,223,372,036,854,775,808(-2^63);
最大值是9,223,372,036,854,775,807(2^63 -1);
这种类型主要使用在需要比较大整数的系统上;
默认值是0L;
例子:long a = 100000L,Long b = -200000L;
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
按照题目要求编写的Item父类的Java程序如下
public class Item{
private String goods;
private int unitperbox;
public Item(String goods,int unitperbox){
this.goods=goods;
this.unitperbox=unitperbox;
}
public String ShowGoods(){
return goods;
}
public int ShowUnitPerBox(){
return unitperbox;
}
}