1、;Bextends/子类定义了一个和父类中相同的name属性Michaelpublicvoidprint()/与System.out.println(this.name);效果相同System.out.println(name);Demo01staticmain(String args)B b =newB();b.print();程序打印了在子类中定义的name属性:Michael如果要打印父类中的name属性,我们可以修改成super.name/如果要打印父类中的name属性,我们可以修改成super.nameSystem.out.println(super.name);父类中的name属性
2、输出了哈这就叫属性的复写属性一般情况下都要求被封装的,被封装之后肯定子类是无法看见父类中的内容,所以根本就无法覆写。super与this调用构造方法能同时写在一个构造方法之中吗?答案是不行哈Super调用构造方法时,一定要放在构造方法的首行,this调用构造方法时也必须放在首行,如果两个都放在首行,则肯定冲突。有人认为可以不调用super方法哈,我们看下面的Demo02A()/里面有三个构造方法B()this(abc,888);B(String name)this();B(String name,intage)this(name);这样就产生了一个问题,我们在讲this关键字时也是提到过的哈在
3、使用this()调用构造方法的时候肯定要留下一个出口。否则编译通不过哈/最好把this(修改成super()作为出口哈super();现在编译就通过了哈本季主要知识点:1、继承的类图表示2、继承的题目现在我们来看个Demo03:这个滴继承关系我们来用类图表示知道了上面的内容,我们来看下练习题:PersonprivateString name;String addr;charsex;intage;/一般参数少的构造方法写在上面哈Person()Person(String name,String addr)this.setName(name);this.setAddr(addr);this.set
4、Sex(男);this.setAge(27);Person(String name,String addr,charsex,intthis.setSex(sex);this.setAge(age);setName(String name)this.name = name;setAddr(String addr)this.addr = addr;/M:表示男;F:表示女setSex(charsex)this.sex = sex;setAge(intthis.age = age;String getName()returnthis.name;String getAddr()this.addr;ge
5、tSex()this.sex;getAge()this.age;/所有的内容应该交给外部输出String getInfo()姓名:+this.name+,地址:+this.addr,性别:+(this.sex=M?男:女),年龄:+this.age;Studentfloatmath;english;Student()/默认隐含了super();Student(String name,String addr)super(name,addr);Student(String name,String addr,charage,floatmath,floatenglish)super(name,addr
6、,sex,age);this.setMath(math);this.setEnglish(english);setMath(floatmath)this.math = math;setEnglish(floatthis.english = english;getMath()this.math;getEnglish()this.english;super.getInfo()+,数学成绩:+this.math+,英语成绩:+this.english;Demo04/使用学生类Student stu =Student(王乾,无锡,27,98.0f,99.0f);System.out.println(s
7、tu.getInfo();现在我们将其导入类图哈下面再来看一个练习题哈 Java中在声明数组长度的时候可以给一个变量,变量的内容可以在程序运行时自动决定。/声明数组类Array/设置整型数组i =null;/设置一个脚标表示插入的点位置foot = 0;/在构造方法处写入数组的大小Array(intlen)this.i =intlen;/输入数据时必须保证数组里有空间接收此数据booleanadd(inttemp)/先判断是否数组中已经加满了内容if(this.footthis.i.length)/表示数组里面依然有空间可以插入数据this.ithis.foot = temp;/修改脚标thi
8、s.foot+;true;elsefalse;/理解为得到全部的数组内容int getAll()this.i;/定义排序的子类SortArray/排序类是Array类的子类,所以此处必须传入一个大小SortArray(intsuper(len);/得到的是一个排序后的数组/最好复写getAll()方法/但是此方法返回的是一个排序好的数组/采用由低到高的方式排序for(inti=0;isuper.getAll().length ;i+ )j=0;jsuper.getAll().length-1 ;j+ )(super.getAll()i=0 ;i- )tempcou =cou+;temp;Demo05SortArray sa =SortArray(8);sa.add(15);sa.add(22);sa.add(07);sa.add(82);sa.add(75);sa.add(99);sa.add(27);sa.add(89);print(sa.getAll();System.out.println(n*排序类与反转类分割线哈*ReverseArray ra =ReverseArray(8);ra.add(15);ra.add(22)