`
李瑞辉++
  • 浏览: 19746 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

方法的重载与重写,自动转型与强制转型,多态的理解

阅读更多
1.方法的重载与重写?
两者都是对于函数的操作,区别在于重载是在同一个作用域里定义多个同名,但参数类型和数量不同的方法,又名方法签名不同,就好像是两个同名的人一样;重写是存在于父类与子类之间的,子类重写父类中的方法,实现子类自己所需的功能,打个比方,儿子继承了父亲的卡车,原来是装货的,但现在儿子用它来拉人如:
///////////////////////////////////重载
Public void study(){}
Public void study(int hour){}
Public viod study(int hour,string name){}
//////////////////////////////////////重写
Class father{public void car(){拉货}}
Class son extends father{ public void car(){拉人}}

2.自动转型与强制转型?
自动转型与强制转型存在于很多情形,如不同数据类型之间的转化:
如  byte a=1; int b=a;//可以直接进行转型,即自动转型
int c=0;byte d =(byte)c; //不能直接转型必须进行强制装转换
也存在于父类与子类之间如 father f=new son();// son继承father 可以自动转型
                          son s= (father)f;//father 是父类,需要强制转换,而且这种转换也不安全,不建议使用

3.多态的理解?
////////////////////////测试部分
public class Testpeople {
	public static void main(String[] args) {
		people  pp1= new adult();
		pp1.showMessage();
		
		people pp2 = new children();
		pp2.showMessage();
	}
}
////////////////////////基类
public class people {
	
	public void showMessage(){
		System.out.println("我是一个普通人");
	}
}
//定义一个小孩类
public class children extends people{
	public void showMessage(){
		System.out.println("我是一个小孩");
	}

}
//定义一个大人类
public class adult extends people{
	public void showMessage(){
		System.out.println("我是一个大人");
	}
}

1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics