多态

多态概述

**继承:**一个一无所有的可以从他的父亲那里得到一些东西如资产,

**重写:**在继承父亲的资产后,可以按照自己的方式管理这些资产,改变以前父亲的操作方式,

**重载:**当然也可以使用与父亲相同的操作方式管理这些资产,但只要通过整合相关资源,就可以产生完全不同的成果

重写

新建以前School类作为父类

class School{
	String sname;
	int sid;
	int snumber;
	public School(String sname, int sid, int snumber) {
		super();
		this.sname = sname;
		this.sid = sid;
		this.snumber = snumber;
	}
	
	void print(){
		System.out.println("学校名是:"+sname+",序号是:"+sid+",人数为"+snumber);
	}
}

新建一个School1继承School,使用super调用父类中的构造器,并重写print方法

class School1 extends School{
	
	String sadder;

	public School1(String sname, int sid, int snumber,String adder) {
		super(sname, sid, snumber);
		this.sadder=adder;
	}
	void print(){
		System.out.println("学校名是:"+sname+",序号是:"+sid+",人数为"+snumber+
				",地址是:"+sadder);
	}
}
public class SchoolTest {

	public static void main(String[] args) {
		
		School1 sc1=new School1("南京大学", 11, 22, "中山");
		sc1.print();
	}

}

重载

新建一个Student类,定义print方法,具有相同方法名而参数不同

class Student{
	String name;
	int age;
	void print(){
		System.out.println("姓名:"+name+"年龄:"+age);
	}
	
	void print(String name1,int age1){
		System.out.println("姓名:"+name1+"年龄:"+age1);
	}
	
	void print(String name2,int age2,int id){
		System.out.println("姓名:"+name2+"年龄:"+age2+"学号:"+id);
	}
	
	void print(String name3,int age3,int id3,double a){
		
		System.out.println("姓名:"+name3+"年龄:"+age3+"学号:"+id3+"成绩:"+a);
		
	}
}

定义ClassTest测试类

public class ClassTest {

	public static void main(String[] args) {
		Student stu=new Student();
		stu.name="tom";
		stu.age=66;
		stu.print();
		stu.print("tom1",77);
		stu.print("tom2",88,1);
		stu.print("tom3",99,2,100);
	}
}

转载于:https://my.oschina.net/nmxsu/blog/732856

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值