java代码。从来没想过java里的继承是多么的难懂。如哲学

总结:实例。。

这里不加super("aaa",32);

运行:父类和子类的姓名,年龄是一样的。那这个super为什么没效果呢?

显示:class:Ji姓名是 小红年龄是:20课程编号是:1
我叫:浪浪,年龄:20

package com.addd;
//构造方法不能被继承,只能是调用
//属性不能被继承,方法可以
//关于继承练习啊
class fjdsk {
	String name;
	int age;

	public fjdsk() {
		name = "杰伦";
		age = 33;
	}

	public fjdsk(String a, int b) {
		name = a;
		age = b;
	}

	public void print() {
		System.out.println("我叫:" + name + ",年龄:" + age);
	}

}

// 当子类没有
class Ji extends fjdsk {
	int classno;

	// public Ji(){}
	// String name;这里的姓名是公共成员变量
	public Ji() {// 子类不声明姓名那么父类子类公共。用同一个姓名,否在各用个的。
		super("泡泡",32);//这里子类还没有声明姓名的属性,这个父类的姓名还是传的参数,而不是"泡泡"
		name = "小红";
		age = 20;
		classno = 1;

	}// 继承是指对象,直接使用另一个对象的属性和方法。比如水果是父类。它的子类有苹果,葡萄,西瓜,等等。那么子类定义的时候,颜色,属性就不必重新定义了
		// 在这里我也发现了,虽然子类中没有name,age,属性,但构造方法传值时,并不报错啊--------子类继承父类的属性

	public Ji(String f, int g, int c) {// 子类继承了父类的属性,那么这里的父类的属性值是子类的。因为参数是子类传的参数。
		super(f, g);// 如果子类这里有参构造方法参数变了,那么继承里的参数也变了。
		name = f;
		age = g;// 运行结果显示,父类的姓名和年龄都来自与子类无参构造方法。因为父类的构造方法我也不知道,为什么不用,
		classno = c;
	}

	// /父类的无参构造方法这里子类直接使用了
	public void sprint() {
		System.out.println("class:Ji" + "姓名是:" + name + "年龄是:" + age + "课程编号是:"
				+ classno);
	}

}

  

原文地址:https://www.cnblogs.com/langlove/p/3438606.html