文章目录
- 第一题
- 第二题
- 第三题
- 第四题
- 第五题
- 第六题
- 第七题
- 第八题
快速完成实验的方法:
把对应题目的主函数替换,其他复制粘贴。
第一题
public class TestPersonDemo {public static void main(String[] args) {/********* begin *********/// 声明并实例化一Person对象p// 给p中的属性赋值// 调用Person类中的talk()方法/********* end *********/}
}// 在这里定义Person类
class Person {/********* begin *********//********* end *********/
}
答案:
// 把主函数替换掉
public static void main(String[] args) {/********* begin *********/// 声明并实例化一Person对象pPerson p = new Person();// 给p中的属性赋值p.setName("张三");p.setAge(18);// 调用Person类中的talk()方法p.talk();/********* end *********/}// 在这里定义Person类
class Person {/********* begin *********/private String name;private int age;public void talk(){System.out.println("我是:"+getName()+",今年:"+getAge()+"岁");}public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
/********* end *********/
}
第二题
public class extendsTest {public static void main(String args[]) {// 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********//********* end *********/// 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********//********* end *********/}
}class Animal {/********* begin *********//********* end *********/}class Cat extends Animal {// 定义Cat类的voice()和eat()方法/********* begin *********//********* end *********/
}class Dog extends Animal {// 定义Dog类的voice()和eat()方法/********* begin *********//********* end *********/
}
答案:
public static void main(String args[]) {// 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********/Cat cat = new Cat();cat.setName("大花猫");cat.setAge(6);cat.voice();cat.eat();/********* end *********/System.out.println(cat.getName()+cat.getAge()+"岁");// 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********/Dog dog = new Dog();dog.setName("大黑狗");dog.setAge(8);dog.voice();dog.eat();/********* end *********/System.out.println(dog.getName()+dog.getAge()+"岁");/********* end *********/}class Animal {/********* begin *********/private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}/********* end *********/}class Cat extends Animal {// 定义Cat类的voice()和eat()方法/********* begin *********/public void voice(){System.out.println(getName()+"喵喵叫");}public void eat(){System.out.println(getName()+"吃鱼");}/********* end *********/
}class Dog extends Animal {// 定义Dog类的voice()和eat()方法/********* begin *********/public void voice(){System.out.println(getName()+"汪汪叫");}public void eat(){System.out.println(getName()+"吃骨头");}/********* end *********/
}
第三题
public class superTest {public static void main(String[] args) {// 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息/********* begin *********//********* end *********/}
}class Person {/********* begin *********//********* end *********/
}class Student extends Person {/********* begin *********//********* end *********/
}
答案:
public static void main(String[] args) {// 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息/********* begin *********/Student s = new Student("张三",18,"哈佛大学");System.out.println("姓名:"+s.getName()+",年龄:"+s.getAge()+",学校:"+s.getSchool());/********* end *********/}class Person {/********* begin *********/private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
/********* end *********/
}class Student extends Person {/********* begin *********/private String school;public Student(String name,int age,String school){super(name, age);this.school = school;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}
/********* end *********/
}
第四题
public static void main(String[] args) {// 实例化子类对象s,调用talk()方法打印信息/********* begin *********//********* end *********/}class Person {/********* begin *********//********* end *********/
}class Student extends Person {/********* begin *********//********* end *********/
}
第五题
public static void main(String[] args) {/********* begin *********/// 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。// 分别调用各自类中被复写的talk()方法 打印信息。/********* end *********/}// 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。
abstract class Person {/********* begin *********//********* end *********/
}// Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Student extends Person {/********* begin *********//********* end *********/
}// Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Worker extends Person {/********* begin *********//********* end *********/}
答案:
public static void main(String[] args) {/********* begin *********/// 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。Student stu = new Student("张三",20,"学生");Worker worker = new Worker("李四",30,"工人");// 分别调用各自类中被复写的talk()方法 打印信息。stu.talk();worker.talk();/********* end *********/}// 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。
abstract class Person {/********* begin *********/String name;int age;String occupation;public Person() {}public Person(String name, int age, String occupation) {this.name = name;this.age = age;this.occupation = occupation;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getOccupation() {return occupation;}public void setOccupation(String occupation) {this.occupation = occupation;}public abstract void talk();
/********* end *********/
}// Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Student extends Person {public Student(String name, int age, String occupation) {super(name, age, occupation);}/********* begin *********/@Overridepublic void talk() {System.out.println("学生——>姓名:"+getName()+",年龄:"+getAge()+",职业:"+getOccupation()+"!");}
/********* end *********/
}// Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息
class Worker extends Person {public Worker(String name, int age, String occupation) {super(name, age, occupation);}/********* begin *********/@Overridepublic void talk() {System.out.println("工人——>姓名:"+getName()+",年龄:"+getAge()+",职业:"+getOccupation()+"!");}/********* end *********/}
第六题
public static void main(String args[]) {Bike1 obj = new Bike1();obj.run();Honda honda = new Honda();honda.run();Yamaha yamaha = new Yamaha();yamaha.run();}//不可以修改 final 变量的值
// final方法,不可以重写
不可以扩展 final 类//请在此添加你的代码/********** Begin *********/class Bike1 {final int speedlimit = 90;void run() {speedlimit = 120; System.out.println("speedlimit=120");}}class Bike2 {final void run() {System.out.println("running");}
}class Honda extends Bike2 {void run() { System.out.println("running safely with 100kmph");}}final class Bike3 {
}class Yamaha extends Bike3 { void run() {System.out.println("running safely with 100kmph");}}/********** End **********/
答案:
main 方法里不用改//不可以修改 final 变量的值
// final方法,不可以重写
不可以扩展 final 类
//请在此添加你的代码
/********** Begin *********/
class Bike1 {int speedlimit = 90;void run() {speedlimit = 120;System.out.println("speedlimit=120");}}class Bike2 {void run() {System.out.println("running");}
}class Honda extends Bike2 {void run() {System.out.println("running safely with 100kmph");}}class Bike3 {
}class Yamaha extends Bike3 {void run() {System.out.println("running safely with 100kmph");}}
/********** End **********/
第七题
public static void main(String[] args) {// 实例化一Student的对象s,并调用talk()方法,打印信息/********* begin *********//********* end *********/}// 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk()
interface Person {/********* begin *********//********* end *********/
}// Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息
class Student implements Person {/********* begin *********//********* end *********/
}
答案:
public static void main(String[] args) {// 实例化一Student的对象s,并调用talk()方法,打印信息/********* begin *********/Student s = new Student();s.talk();/********* end *********/}// 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk()
interface Person {/********* begin *********/static final String name = "张三";static final int age =18;static final String occupation = "学生";public abstract void talk();/********* end *********/
}// Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息
class Student implements Person {/********* begin *********/@Overridepublic void talk() {System.out.println("学生——>姓名:"+name+",年龄:"+age+",职业:"+occupation+"!");}
/********* end *********/
}
第八题
public static void main(String[] args) {// 以多态方式分别实例化子类对象并调用eat()方法/********* begin *********//********* end *********/}// Animal类中定义eat()方法
class Animal {/********* begin *********//********* end *********/
}// Dog类继承Animal类 复写eat()方法
class Dog extends Animal {/********* begin *********//********* end *********/
}// Cat类继承Animal类 复写eat()方法
class Cat extends Animal {/********* begin *********//********* end *********/
}// Lion类继承Animal类 复写eat()方法
class Lion extends Animal {/********* begin *********//********* end *********/
}
答案:
public static void main(String[] args) {// 以多态方式分别实例化子类对象并调用eat()方法/********* begin *********/Animal dog = new Dog();Animal cat = new Cat();Animal lion = new Lion();dog.eat();cat.eat();lion.eat();/********* end *********/}// Animal类中定义eat()方法
class Animal {/********* begin *********/public void eat(){}/********* end *********/
}// Dog类继承Animal类 复写eat()方法
class Dog extends Animal {/********* begin *********/public void eat(){System.out.println("eating bread...");}/********* end *********/
}// Cat类继承Animal类 复写eat()方法
class Cat extends Animal {/********* begin *********/@Overridepublic void eat() {System.out.println("eating rat...");}/********* end *********/
}// Lion类继承Animal类 复写eat()方法
class Lion extends Animal {/********* begin *********/@Overridepublic void eat() {System.out.println("eating meat...");}/********* end *********/
}