设计一个父类Father,从Father派生出子类Son,继续从Son派生出类Grandson。像这样题一般的思路是什么
统计当前类及子类对象思路:利用构造代码块在构造方法执行前执行的特性,记录创建的对象,从而进行统计。示例代码如下:
public class Father {
private static List<Father> objects = new ArrayList<>();
{
objects.add(this);
}
public static Map<String, Integer> getObjectCount() {
Map<String, Integer> map = new HashMap<>();
for (Father object : objects) {
String name = object.getClass().getName();
Integer count = map.getOrDefault(name, 0) + 1;
map.put(name, count);
}
return map;
}
}
public class Son extends Father{
}
public class Grandson extends Son {
}
测试代码如下:
public class Test {
public static void main(String[] args) {
Father father = new Father();
Son son1 = new Son();
Son son2 = new Son();
Grandson grandson = new Grandson();
System.out.println(Father.getObjectCount());
}
}
打印结果如下:
{com.zzuhkp.demo.Father=1, com.zzuhkp.demo.Grandson=1, com.zzuhkp.demo.Son=2}
代码如下:
public class Father {
private String name;
private int age;
private int sex;
public Father() {
}
public Father(String name, int age, int sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
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 int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
}
public class Son extends Father{
private String fatherName;
public Son() {
}
public Son(String name, int age, int sex, String fatherName) {
super(name, age, sex);
this.fatherName = fatherName;
}
public String getFatherName() {
return fatherName;
}
public void setFatherName(String fatherName) {
this.fatherName = fatherName;
}
public String getMyselfName(String name){
return name;
}
}
public class Grandson extends Son{
public Grandson() {
}
public Grandson(String name, int age, int sex, String fatherName) {
super(name, age, sex, fatherName);
}
}
@Test
public void testClass(){
Father father = new Father("张三",59,1);
Son son = new Son("张三三",36,1,"张三");
Grandson grandson = new Grandson("张三三三",36,1,"张三三");
}
这不就是类的继承?
光是类的继承,需要啥思路,按照语法写就是
Son 继承 Father,Grandson再继承Son 不需要其他啥思路吧
设计一个父类Father,从Father派生出子类Son,继续从Son派生出类Grandson。用多种方式建立各类对象,最后统计出类族中建立的各类对象以及该类后代对象的数目
java本身就有这样的继承能力,直接写父类、子类、孙子就好了啊!这和统计有什么关系呢?
考查Java面向对象设计,类继承
设计代码如下:
public class Answer7679792 {
public static void main(String[] args) {
// 多态特性
Father father = new Father("father");
Father son = new Son("son");
Father grandson = new Grandson("grandson");
Son son2 = new Son("son2");
Son grandson2 = new Grandson("grandson2");
Grandson grandson3 = new Grandson("grandson3");
System.out.println(father.getName());
System.out.println(son.getName());
System.out.println(grandson.getName());
System.out.println(son2.getName());
System.out.println(grandson2.getName());
System.out.println(grandson3.getName());
}
}
class Father {
private String name;
public Father(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Son extends Father {
public Son(String name) {
super(name);
}
}
class Grandson extends Son {
public Grandson(String name) {
super(name);
}
}
运行结果如下:
father
son
grandson
son2
grandson2
grandson3
如有帮助,请采纳,十分感谢!
派生继承,多态,虚函数表,积累指针指向哪个虚函数