第一题
-
什么叫做类与类的继承,作用是什么?
就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。 作用是子类复用父类内容。
-
继承后,父类与子类之间,各成员有什么样的影响?
成员变量: 不重名,没有影响。 重名,就近使用,使用super区分父类变量。 构造方法: 无影响,但是子类构造方法默认调用父类构造方法 成员方法: 不重名,没有影响。 重名,子类重写父类方法。
-
子类中,如何调用父类的成员?如何使用本类的成员?
父类成员方法:super.方法名 父类非私有成员变量:super.变量名 子类成员方法:this.方法名 子类成员变量:this.变量名
-
抽象方法与普通成员方法有什么区别?
抽象方法使用abstract关键字修饰,没有方法体。 成员方法有方法体。
-
抽象类与普通类有什么区别?
方法: 抽象类可以包含抽象方法和成员方法。 普通类不可以包含抽象方法,只有成员方法。 对象: 抽象类不可以创建对象。 普通类可以创建对象。
第二题
-
语法点:继承,抽象类
-
按步骤编写代码,效果如图所示:
-
编写步骤:
定义抽象类A,抽象类B继承A,普通类C继承B A类中,定义成员变量numa,赋值为10,抽象showA方法。 B类中,定义成员变量numb,赋值为20,抽象showB方法。 C类中,定义成员变量numc,赋值为30,重写showA方法,打印numa,重写showB方法,打印numb,定义showC方法,打印numc。 测试类中,创建C对象,调用showA方法,showB方法,showC方法。
-
参考答案:
public class Test2 {
public static void main(String[] args) {
// 创建C对象
C c = new C();
// 调用c 中方法
c.showA();
c.showB();
c.showC();
}
}
abstract class A{
int numa = 10;
public abstract void showA();
}
abstract class B extends A{
int numb = 20;
public abstract void showB();
}
class C extends B{
int numc = 30;
@Override
public void showA() {
System.out.println("A类中numa:"+numa);
}
@Override
public void showB() {
System.out.println("B类中numb:"+numb);
}
public void showC(){
System.out.println("C类中numc:"+numc);
}
}
第三题
-
语法点:继承,抽象类
-
按步骤编写代码,效果如图所示:
-
编写步骤:
模拟农学院动物医疗系统信息。 定义抽象家禽类(Poultry) 私有成员变量:动物种类(name),症状(symptom),年龄(age), 病因(illness) 提供空参和带参构造方法 成员方法: 抽象方法症状(showSymptom) 普通方法基本信息(showMsg) 提供setXxx和getXxx方法 定义普通鸭子类(Duck) 提供空参和带参构造方法 重写showSymptom方法,打印症状信息。
-
参考答案:
public class Test3 {
public static void main(String[] args) {
Duck duck = new Duck("鸭子", "感冒", "发烧", 2);
duck.showMsg();
duck.showSymptom();
}
}
/*
1.定义抽象家禽类(Poultry)
*/
abstract class Poultry {
// i.成员变量(私有):
private String name;
private String illness;
// 症状(symptom)
private String symptom;
// 年龄(age)
private int age;
// ii.成员方法: showSymptom
public abstract void showSymptom();
// 成员方法: showMsg
public void showMsg() {
System.out.print("动物种类:" + name);
System.out.println(",年龄:"