Java oop9:老师类继承自人类或声明U盘类实现接口,使用多态数组打印其各自的方法,

/*1.声明一个父类人类,子类老师类继承自人类,子类学生类继承自人类,使用多态数组打印其各自的方法
*/
package a;
public class Student {
public static void main(String[] args) {
person j = new xueSheng("张三");
person l = new xueSheng("李四");
person c = new laoShi("王五");
person[] ms = new person[3];
ms[0] = l;
ms[1] = j;
ms[2] = c;
for (int i = 0; i < ms.length; i++) {
if (ms[i] instanceof xueSheng) {
((xueSheng) ms[i]).zuoZuoYeY();}
else if (ms[i] instanceof laoShi) {
((laoShi) ms[i]).gouWuW();
}
}
}
}
class person {
public String name;/* 抽象类中这个可以不要 */
public person(String name/* 抽象类中这个可以不要 */) {
super();// 抽象类中这个可以不要
this.name = name;// 抽象类中这个可以不要
}
}
class xueSheng extends person {
// 调用父类的构造方 法
public xueSheng(String name) {
super(name);
// TODO Auto-generated constructor stub
}
public void zuoZuoYeY() {
// TODO Auto-generated method stub
System.out.println(this.name + "做作业");
}
}
class laoShi extends person {
public laoShi(String name) {
super(name);
// TODO Auto-generated constructor stub
}
public void gouWuW() {
// TODO Auto-generated method stub
System.out.println(this.name + "购物");
}
}
/*有时候代码没错也会暂时报错:*/

/*
2.声明一个存储数据的接口,声明U盘类实现接口,
声明硬盘类实现接口,声明MP3类实现接口,使用多态数组打印其各自的功能*/
package a;
public class Student {
public static void main(String[] args) {
renWu j/*父类*/=new UPan/*子类*/ ("U盘"/*赋值*/);
((UPan)/*转换*/j).gongNeng();
renWu c=new yingPan("硬盘");
((yingPan)c).gongNeng();
renWu m=new MP3("MP3");
((MP3)m).gongNeng();
}
}
interface chuCunShuJv{
void gongNeng();
}
abstract/*抽象*/class renWu/*父类*/{
public String name;/*设参数*/
public renWu(String name/*接收参数*/) {
super();/*extends继承时会用的super*/
this.name = name;/*声明这个类里的name 是接收到的name,有自己说得通的理解即可*/
}
}
class UPan/*子类*/extends/*继承*/ renWu/*父类*/implements/*接口*/ chuCunShuJv{
public UPan (String string) {
super(string);
}
@Override
public void gongNeng() {
System.out.println(this.name+"有拷贝的功能");/*里面有System.out.println的一般是public void gongNeng()这类的构造方法*/
}
}
class yingPan/*子类*/extends/*继承*/ renWu/*父类*/implements/*接口*/ chuCunShuJv{
public yingPan (String string) {
super(string);
}
@Override
public void gongNeng() {
System.out.println(this.name+"好玩");/*里面有System.out.println的一般是public void gongNeng()这类的构造方法*/
}
}
class MP3 extends renWu implements chuCunShuJv{
public MP3(String name) {
super(name);
}
@Override
public void gongNeng() {
System.out.println(this.name+"听歌");
}
}
