父类与子类

父类与子类构造方法初始化的顺序,是先调用父类的构造方法,后调用子类的构造方法。子类是调用不到父类中的私有成员的。
这就涉及到java中的四种访问修饰符:private,只在本类中访问的到;默认的成员在同一个包中或子类可见;protected,在同一个包以及不同包的直接子类可见;public范围最广,任何地方可访问的到。
子类调用父类中的方法可以用super关键字调用,调用父类的构造方法是super()必须是在构造方法中的第一个语句。否则出现编译错误:
Constructor call must be the first statement in a constructor。
在本类的main方法中调用本类的一个非静态方法,仍要创建本类的一个对象,否则有编译错误。
static关键字的使用。static修饰属性,方法,语句块.并且static的部分是和类一起加载的,类中静态部分从上到下依次被加载。
例子的代码如下:

class father_class
{
	int a;
	int b;
	father_class()//构造方法中的参数
	{
		System.out.println("This is a father class");
	}
	void print()
	{
		System.out.println("这是一个父类!");
	}
}
class child_class extends father_class
{
	int ca;
	int cb;
	int cc;
	child_class()//方法中的参数
	{
		//super();
		System.out.println("This is a child class");
	}
	void show()
	{
		super.print();
		System.out.println("子类的show方法");
	}
}
public class pracsuper {

	/**
	 * @param args
	 */
	String s="子类访问不到父类的私有成员;通常的信息类方法定义为public,供外部调用," +"\n"+
			"static的main方法中只能调用静态的方法,若调用的是" +"\n"+
			"非静态的普通方法则需要创建方法所在的类的对象";
	int b,c;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
child_class cs=new child_class();
		System.out.println(".......");
		cs.show();
		pracsuper p=new pracsuper();
		System.out.println(p.getValue());
	}
public String getValue()
{
	return s;
}
}


运行程序,执行结果为:

This is a child class
.......
这是一个父类!
子类的show方法
子类访问不到父类的私有成员;通常的信息类方法定义为public,供外部调用,
static的main方法中只能调用静态的方法,若调用的是
非静态的普通方法则需要创建方法所在的类的对象

你可能感兴趣的:(父类)