java继承初学者入门.docx
《java继承初学者入门.docx》由会员分享,可在线阅读,更多相关《java继承初学者入门.docx(14页珍藏版)》请在冰豆网上搜索。
java继承初学者入门
classA
{
publicstaticinti;
protectedstaticintj;
privatestaticintk;
}
classBextendsA
{
privatevoidg()
{
i=22;
//k=20;
}
}
classM
{
publicstaticvoidmain(String[]args)
{
A.i=99;
//A.k=99;//error
B.i=99;
//B.k=99;//error
Bbb=newB();
bb.i=99;
//bb.k=99;//error
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
}
classBextendsA
{
publicvoidf()
{
super.f();//调用从父类继承过来的f方法
System.out.printf("BBBB\n");
}
}
publicclassTestOver_1
{
publicstaticvoidmain(String[]zhangsan)
{
Bbb=newB();
bb.f();
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
publicvoidf(inti)
{
System.out.printf("哈哈\n");
}
}
classBextendsA
{
publicvoidf()
{
super.f();//调用从父类继承过来的f方法
f(10);
System.out.printf("BBBB\n");
}
}
publicclassTestOver_2
{
publicstaticvoidmain(String[]zhangsan)
{
Bbb=newB();
bb.f();
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
}
classBextendsA
{
publicvoidf()
{
System.out.printf("BBBB\n");
}
}
publicclassTestOver_3
{
publicstaticvoidmain(String[]zhangsan)
{
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
}
classBextendsA
{
publicvoidf()
{
System.out.printf("BBBB\n");
}
}
publicclassTestOver_4
{
publicstaticvoidmain(String[]zhangsan)
{
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
}
classBextendsA
{
publicvoidf()
{
System.out.printf("BBBB\n");
}
}
publicclassTestPoly
{
publicstaticvoidmain(String[]args)
{
Aaa=newA();
Bbb=newB();
aa.f();
bb.f();
aa=bb;//把bb当做aa来看待因为子类可以当做父类看待,所以本语句OK
//bb=aa;//把aa当做bb来看待,因为父类不能当做子类看待,所以本语句error
}
}
classA
{
publicvoidf()
{
System.out.printf("AAAA\n");
}
}
classBextendsA
{
publicvoidf()
{
System.out.printf("BBBB\n");
}
}
publicclassTestPoly_2
{
publicstaticvoidmain(String[]args)
{
Aaa=newA();
Bbb=newB();
aa.f();
bb.f();
aa=bb;
aa.f();
}
}
classHuman
{
privateStringname;
privateintage;
publicHuman()
{
}
publicHuman(Stringname,intage)
{
this.name=name;
this.age=age;
}
publicvoidsetName(Stringname)
{
this.name=name;
}
publicvoidsetAge(intage)
{
this.age=age;
}
publicStringgetInfor()
{
StringstrInf=name+":
"+age;
returnstrInf;
}
}
classStudentextendsHuman
{
publicStringschool;
publicStudent()
{
}
publicStudent(Stringname,intage,Stringschool)
{
super(name,age);
//this.name=name;//error因为name时私有的
//this.age=age;//error同上
this.school=school;
}
publicvoidsetSchool(Stringschool)
{
this.school=school;
}
publicStringgetInfor()
{
//StringstrInf=name+":
"+age+":
"+school;//error因为age是私有的
StringstrInf=super.getInfor()+":
"+school;
returnstrInf;
}
}
publicclassTestStudent
{
publicstaticvoidmain(String[]args)
{
Studentst1=newStudent("张三",22,"瑞德");
System.out.printf("%s\n",st1.getInfor());
}
}
classA
{
publicinti;
publicintj;
publicA()
{
}
publicA(inti,intj)
{
this.i=i;
this.j=j;
}
}
classBextendsA
{
publicintk;
publicB()
{
}
publicB(inti,intj,intk)
{
this.i=i;//一定要明白为什么i前面可以加this
this.j=j;
this.k=k;
}
}
publicclassTestSuper_1
{
publicstaticvoidmain(String[]args)
{
Bbb=newB(1,2,3);
System.out.printf("%d%d\n",bb.i,bb.j);
}
}
classA
{
publicinti;
publicintj;
publicA()
{
}
publicA(inti,intj)
{
this.i=i;
this.j=j;
}
}
classBextendsA
{
publicintk;
publicB()
{
}
publicB(inti,intj,intk)
{
//A(i,j);//error
super(i,j);
this.k=k;
}
}
publicclassTestSuper_2
{
publicstaticvoidmain(String[]args)
{
Bbb=newB(1,2,3);
System.out.printf("%d%d\n",bb.i,bb.j);
}
}
classA
{
publicinti;
publicA()
{
}
publicA(inti)
{
this.i=i;
}
}
classBextendsA
{
publicintj;
publicB(inti,intj)
{
//this.j=j;
super();
//super(i);
//super(i);
}
publicvoidf(inti)
{
//super(i);//普通方法中不能调用父类的构造方法
}
}
publicclassTestSuper_3
{
publicstaticvoidmain(String[]args)
{
}
}