java代码。继承。。。很戳我的心啊。。不太懂。super的真正用法

总结:

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);
	}

}





package com.addd;
//进行测试
public class Testk {
	public static void main(String[] args) {
		Ji j=new Ji();
		Ji j2=new Ji("章矛",32,2);
		j.sprint();
		j.print();
		j2.sprint();
		j2.print();
	}
}


//
class:Ji姓名是:浪浪年龄是:20课程编号是:1
我叫:泡泡,年龄:20
class:Ji姓名是:章矛年龄是:32课程编号是:2
我叫:章矛,年龄:32

  

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