实验七
1实验代码:
package Students;
public class Person
{
public String name;
public String birthday;
public String province,city;
public int count;
public Person(String nam,String birthda,String provinc,String cit,int n)
{
name=nam;birthday=birthda;province=provinc;city=cit;count=n;
}
}
class Student extends Person
{public String major;
public int sum1,sum2,sum3;
public int grade;
public int number;
public int score;
Student(String nam,String birthda,String provinc,String cit,int n,String majo,int grad,int scor)
{ super(nam,birthda,provinc,cit,n);
major=majo;
grade=grad;
score=scor;
String a,b,c;
a=new String("网络工程");
b=new String("物联网");
c=new String("计算机科学与技术");
if(major.equals(a))
{number=grade*10000+01*100+count;
}
if(major.equals(b))
{number=grade*10000+02*100+count;
}
if(major.equals(c))
{number=grade*10000+03*100+count;
}
}
public void searchname(String nam)
{ int i=-1;
i=name.indexOf(nam);
if(i!=-1)
System.out.println(name);
};
public void searchbirthday(String num)
{
int i=-1;
i=birthday.indexOf(num);
if(i!=-1)
System.out.println(name);
}
public void searchplace(String place)
{
int i=-1;
i=province.indexOf(place);
if(i!=-1)
System.out.println(name);
}
public int separate()
{
String a,b,c;
a=new String("网络工程");
b=new String("物联网");
c=new String("计算机科学与技术");
if(major.equals(a))
{
sum1=sum1+score;
return sum1;
}
if(major.equals(b))
{sum2=sum2+score;
return sum2;
}
if(major.equals(c))
{
sum3=sum3+score;
return sum3;
}
else return 0;
}
public static void main(String[] args)
{
System.out.println("初始数据:学生1:姓名:张三,生日:1998年11月15日,省份:青海,城市:西宁,专业:物联网,入学年份:2017,成绩:89");
System.out.println(" 学生2:姓名:李四,生日:1999年01月08日,省份:河南,城市:洛阳,专业:网络工程,入学年份:2017,成绩:97");
System.out.println(" 学生3:姓名:王二,生日:1998年07月24日,省份:山东,城市:青岛,专业:网络工程,入学年份:2017,成绩:92");
System.out.println(" 学生4:姓名:赵六,生日:1997年08月30日,省份:陕西,城市:西安,专业:计算机科学与技术,入学年份:2017,成绩:84");
System.out.print("查找姓‘王’的学生为:");
Student stud1=new Student("张三","1998年11月15日","青海","西宁",01,"物联网",2017,89);
Student stud2=new Student("李四","1999年01月08日","河南","洛阳",02,"网络工程",2017,97);
Student stud3=new Student("王二","1998年07月24日","山东","青岛",03,"网络工程",2017,92);
Student stud4=new Student("赵六","1997年08月30日","陕西","西安",04,"计算机科学与技术",2017,84);
stud1.searchname("王");
stud2.searchname("王");
stud3.searchname("王");
stud4.searchname("王");
System.out.print("查找生日为1999年01月08日的学生为:");
stud1.searchbirthday("1999年01月08日");
stud2.searchbirthday("1999年01月08日");
stud3.searchbirthday("1999年01月08日");
stud4.searchbirthday("1999年01月08日");
System.out.print("查找所在地区是陕西的学生为:");
stud1.searchplace("陕西");
stud2.searchplace("陕西");
stud3.searchplace("陕西");
stud4.searchplace("陕西");
stud1.separate();
stud2.separate();
stud3.separate();
stud4.separate();
int add1=0,add2=0,add3=0;
add1=stud1.sum1+stud2.sum1+stud3.sum1+stud4.sum1;
add2=stud1.sum2+stud2.sum2+stud3.sum2+stud4.sum2;
add3=stud1.sum3+stud2.sum3+stud3.sum3+stud4.sum3;
System.out.println("网络工程班总成绩是:"+add1);
System.out.println("物联网班总成绩是:"+add2);
System.out.println("计算机科学与技术班总成绩是:"+add3);
}
}
2.总结
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。
简单的说:就是用基类的引用指向子类的对象我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。
而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。如果项目耦合度很高的情况下,维护代码时修改一个地方会牵连到很多地方,会无休止的增加开发成本,降低耦合度可以保证。
多态条件:多态可以分为动多态和静多态动多态条件:1)继承(父类——子类,基类——派生类)2)方法重写(父子关系,作用域不同、方法名相同、参数列表相同)3)父类引用引用派生类对象(向上造型)静多态条件:1)方法重载(作用域相同、方法名相同、参数列表不同)程序的拓展性。。
javascript中DOM获取和设置元素的内容、样式及效果
第四十一节 固定在顶部的悬停菜单
第四十节 定位练习
第三十九节 层级定位
第三十八节 固定定位
第三十七节 绝对定位
第三十六节 相对定位
第三十五节 定位
第三十四节 新闻标题练习