多态
博客专区 > hx小鑫 的博客 > 博客详情
多态
hx小鑫 发表于1年前
多态
  • 发表于 1年前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 在java中多态可以通过综合应用来继承、覆盖,以及通过向上转型来实现。

多态概述

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

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

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

重写

新建以前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);
	}
}
标签: 重载 重写
共有 人打赏支持
粉丝 6
博文 16
码字总数 7087
×
hx小鑫
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: