定义类A 和类B 如下:
classA{int a =1;double d =2.0;voidshow(){System.out.println("Class A: a="+ a +"\td="+ d);}}classBextendsA{float a =3.0f;String d ="Java program.";voidshow(){super.show();System.out.println("Class B: a="+ a +"\td="+ d);}}
6.写出程序结果
classSuper{publicintget(){return4;}}classDemo15extendsSuper{publiclongget(){return5;}publicstaticvoidmain(String[] args){Super s =newDemo15();System.out.println(s.get());}}//编译失败,因为int和long没有覆盖,所以子类中起始存在两个get方法,调用时不知道调用哪个,所以编译会失败
publicstaticvoidmain(String[] args){double a =2.0;double b =2.0;Double c =2.0;Double d =2.0;System.out.println(a == b);true基本数据类型比较值
System.out.println(c == d);false:引用数据类型比较地址
System.out.println(a == d);true基本数据和引用类型比较,比较值
}
classSuper{int i =0;publicSuper(String a){System.out.println("A");
i =1;}publicSuper(){System.out.println("B");
i +=2;}}classDemoextendsSuper{publicDemo(String a){// super();System.out.println("C");
i =5;}publicstaticvoidmain(String[] args){int i =4;Super d =newDemo("A");System.out.println(d.i);//B C 5}}
classSuper{int i =0;publicSuper(String s){
i =1;}}classDemoextendsSuper{publicDemo(String s){
i =2;}publicstaticvoidmain(String[] args){Demo d =newDemo("yes");System.out.println(d.i);}
编译失败,父类没有无参构造器
}
packagetest;publicclassFatherClass{publicFatherClass(){System.out.println("FatherClass Create");}}
子类:packagetest;importtest.FatherClass;publicclassChildClassextendsFatherClass{publicChildClass(){System.out.println("ChildClass Create");}publicstaticvoidmain(String[] args){FatherClass fc =newFatherClass();ChildClass cc =newChildClass();}}
publicclassTest{publicstaticvoidmain(String[] args){Base b1 =newBase();Base b2 =newSub();}}classBase{Base(){method(100);}publicvoidmethod(int i){System.out.println("base : "+ i);}}classSubextendsBase{Sub(){super.method(70);}publicvoidmethod(int j){System.out.println("sub : "+ j);}}
base :100
sub :100
base :70
classA{privateint a;publicvoidsetA(int a){this.a = a;}publicintgetA(){return a;}}classBextendsA{privateint a;publicvoidsetA(int a){this.a = a;}// public int getA(){// return a;// }有了get方法以后得到的是5}publicclassPersonTest{publicstaticvoidmain(String[] args){A c =newB();
c.setA(5);//set的是B里面的5;System.out.println(c.getA());//输出的是A里面的0,因为子类中没有get方法}}
classFu{booleanshow(char a){System.out.println(a);returntrue;}}classDemoextendsFu{publicstaticvoidmain(String[] args){int i =0;Fu f =newDemo();Demo d =newDemo();for(f.show('A'); f.show('B')&&(i <2); f.show('C')){
i++;
d.show('D');}}booleanshow(char a){System.out.println(a);returnfalse;}}//return 再for循环里可以用来终止循环,
classFu{int num =4;voidshow(){System.out.println("showFu");}}classZiextendsFu{int num =5;voidshow(){System.out.println("showZi");}}classT{publicstaticvoidmain(String[] args){Fu f =newZi();Zi z =newZi();System.out.println(f.num);//5System.out.println(z.num);//5
f.show();//showZi
z.show();//showZi}}
packageclassTest4;/**
* describe:
*
* @author suoliang
* @create 2021-06-13:01
*/publicclass use12 {publicstaticvoidmain(String[] args){Per per =newstu();
per.show();//这里面的a和d是子类中的System.out.println(per.a);//直接访问a和d是父类中的,不可以访问子类中的System.out.println(per.d);}}classPer{int a =12;double d =20.0;publicvoidshow(){System.out.println(a+d);}}class stu extendsPer{int a =20;String d ="爱我中华";@Overridepublicvoidshow(){System.out.println(a + d);}}