代码改变世界

面向对象第5课——继承

2016-09-26 09:07  宇航员舒克  阅读(111)  评论(0编辑  收藏  举报
									//继承课件(子类继承父类的属性和方法)(extends链接)
package com.jicheng0920;
//人
public class Person {
	private String name;
	private int age;
	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 Person(String name)
	{	
		this.name=name;
		System.out.println("实例化父类...........");
	}
	//方法
	public String getInfo()
	{
		return "name="+name+"age="+age;
	}
}




package com.jicheng0920;

//关键字:extends 继承
	public class Student extends Person//继承,表示Student(子类) 继承了 Person(父类)
{
		private String school;

		public String getSchool() {
			return school;
		}

		public void setSchool(String school) {
			this.school = school;
		}
		//构造方法
		public Student(String name)
		{
			//显示调用父类的构造方法
			//super,必须在方法的第一句
			super(name);//显示调用父类构造方法
//			this();//表示不在调用父类构造方法
			System.out.println("实例化子类...........");
		}
		
		//方法
		public String getInfo()
		{
			//子类调父类的方法
			//super.代表父类的实例
			return "父类信息"+super.getInfo()+"子类school="+school;
		}
		
		
}



package com.jicheng0920;

public class test0920 {
//总结:
//	1.java支持单继承,不支持多继承。子类只能有一个父类,但是父类可以有多个字类。
//	2.子类自动继承父类公开的成员。
//	3.子类不可以继承构造方法和父类中私有的方法和属性。
//	4.子类可以扩展定义自己的成员
//	5.java.lang.object是所有类的根父类
//子类在实例化子类之前早已默认实例化父类。
//方法的重写 覆盖
//	1.必须和父类的方法具有相同的方法名称、相同的参数列表、返回值类型。
//	2.子类的覆盖方法不能有比父类更严格的访问权限。
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//父类
		Person p=new Person("456");
		//p.setName("张三");
		p.setAge(18);
		System.out.println(p.getInfo());
		//子类
		//子类在实例化子类之前早已默认实例化父类。
		Student s=new Student("小李");
//		s.setName("小明");
		s.setAge(100);
		s.setSchool("家里蹲大学");
		System.out.println(s.getInfo());