2018/2/11
java
1.方法的重载:用于同一方法名,但是参数不同;
2.方法的重写(override):用于子类对父类方法的重新诠释
3.多态
假如你想设计一个介绍春晚的小程序,其中有着歌手类,舞蹈演员类,相声演员类.......,对于同一个导演而言,总不能对于每一个类都使用特定的方法,所以采用多态的形式,即:让父类引用指向子类对象,调用方法时调用子类的方法;父类使用被子类重写的方法
package text1;
/*演员父类*/
public class Actor {
private String name;
public Actor()
{
}
public Actor(String name)
{
setName(name);
}
/*演员的表演方法*/
public void performs()
{
System.out.println("演员"+getName()+"正在表演精彩节目");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}package text1;
public class Singer extends Actor {
public Singer() {
super();// 继承父类无参构造
}
public Singer(String name) {
super(name);// 继承父类带参构造
}
/* 重写表演方法 */
@Override
public void performs() {
System.out.println("歌唱演员"+getName()+"正在表演歌唱节目");
}
}
package text1;
public class Dancer extends Actor {
public Dancer() {
super();
}
public Dancer(String name) {
super(name);
}
@Override
public void performs() {
System.out.println("舞蹈演员"+getName()+"正在优美地展现舞姿");
}
}package text1;
/*导演类
* 相当于核心业务类
* 让演员就位,开始表演
* 采用多态的方法不必对每个演员都用特定的方法*/
public class Director {
//采用多态的方法,让演员就位,开始表演
public void action(Actor actor)
{
actor.performs();
}
}
package text1;
public class Text {
public static void main(String[] args) {
Director 张艺谋 = new Director();
Singer 宋祖英 = new Singer("宋祖英");
Dancer 杨丽萍 = new Dancer("杨丽萍");
System.out.println("演员们开始表演啦");
张艺谋.action(宋祖英);
张艺谋.action(杨丽萍);
}
}