欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

父类子类关系

程序员文章站 2022-06-07 20:06:42
...

父类:

/**  
 * @Title:  Person.java   
 * @Package demo   
 * @Description:    TODO(用一句话描述该文件做什么)   
 * @author: zcx     
 * @date:   2019年3月30日 下午2:53:16   
 * @version V1.0 
 * 
 */
package demo;

/**   
 * @ClassName:  Person   
 * @Description:TODO(这里用一句话描述这个类的作用)   
 * @author: zcx
 * @date:   2019年3月30日 下午2:53:16   
 *     
 */
public class Person {
	
	Long id;
	
	String name;
	
	public static void say() {
		System.out.println("person");
	}
	
	public void say2() {
		System.out.println("person");
	}
	
	public final void say3() {
		System.out.println("person");
	}
}

子类:

/**  
 * @Title:  Student.java   
 * @Package demo   
 * @Description:    TODO(用一句话描述该文件做什么)   
 * @author: zcx     
 * @date:   2019年3月30日 下午2:53:42   
 * @version V1.0 
 * 
 */
package demo;

/**   
 * @ClassName:  Student   
 * @Description:TODO(这里用一句话描述这个类的作用)   
 * @author: zcx
 * @date:   2019年3月30日 下午2:53:42   
 *     
 */
public class Student extends Person{
	private String studentNo;
	
	public static void say() {
		System.out.println("stu");
	}
	
	public void say2() {
		System.out.println("stu");
	}
	
	public void say3(String a) {
		System.out.println("stu");
	}
}

测试类

package demo;

import java.io.IOException;

public class Test {
	public static void main(String[] args) throws IOException {
		//父类引用static
		Person person = new Student();
		//persion
		person.say();
		//stu
		person.say2();
		//persion
		person.say3();
		Student Student = new Student();
		//stu
		Student.say();
		//stu
		Student.say2();
		//persion
		Student.say3();
	}
}

说明:
final方法不可重写和隐式重写,可重载;

static方法不可重写可隐式重写,static方法是类的,当使用Person person = new Student();时对象指定static方法为父类的,若Student Student = new Student();,对象指定的类为Student ,则调用的static方法是子类的。

向上转型:子类对象转为父类,父类可以是接口。公式:Person f = new Student ();Person 是父类或接口,Student 是子类。
向下转型:父类对象转为子类。公式:Student s = (Student )f;

相关标签: java 面向对象