完整word版零基础学JAVAJavaSE面向对象部分14面向对象高级02.docx
- 文档编号:718715
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:11
- 大小:326.39KB
完整word版零基础学JAVAJavaSE面向对象部分14面向对象高级02.docx
《完整word版零基础学JAVAJavaSE面向对象部分14面向对象高级02.docx》由会员分享,可在线阅读,更多相关《完整word版零基础学JAVAJavaSE面向对象部分14面向对象高级02.docx(11页珍藏版)》请在冰豆网上搜索。
完整word版零基础学JAVAJavaSE面向对象部分14面向对象高级02
本季先重点回顾了方法的重载与覆写、super与this关键字的区别。
之后主要以实例讲解为主,主要回顾了JAVA中的继承及数组的基本概念,之后又讲解了JAVA中继承的图形表示。
上季内容回顾:
1、继承的使用和概念,继承的各种限制
2、子类对象的实例化过程
3、方法覆写
4、super的使用
有两个题目在面试中经常会涉及到哈~~~
面试一:
解释一下方法的覆写与方法的重载的区别:
面试二:
super与this的区别
属性覆写(较少使用)
我们来简单验证下哈
classA
{
Stringname="redking";
};
classBextendsA
{
//子类定义了一个和父类中相同的name属性
Stringname="Michael";
publicvoidprint()
{
//与System.out.println(this.name);效果相同
System.out.println(name);
}
};
publicclassDemo01
{
publicstaticvoidmain(Stringargs[])
{
Bb=newB();
b.print();
}
};
程序打印了在子类中定义的name属性:
Michael
如果要打印父类中的name属性,我们可以修改成super.name
classA
{
Stringname="redking";
};
classBextendsA
{
//子类定义了一个和父类中相同的name属性
Stringname="Michael";
publicvoidprint()
{
//与System.out.println(this.name);效果相同
System.out.println(name);
//如果要打印父类中的name属性,我们可以修改成super.name
System.out.println(super.name);
}
};
publicclassDemo01
{
publicstaticvoidmain(Stringargs[])
{
Bb=newB();
b.print();
}
};
父类中的name属性输出了哈~这就叫属性的复写
属性一般情况下都要求被封装的,被封装之后肯定子类是无法看见父类中的内容,所以根本就无法覆写。
super与this调用构造方法能同时写在一个构造方法之中吗?
答案是不行哈~
Super调用构造方法时,一定要放在构造方法的首行,this调用构造方法时也必须放在首行,如果两个都放在首行,则肯定冲突。
有人认为可以不调用super方法哈,我们看下面的Demo02
classA
{
publicA(){}
};
classBextendsA
{
//里面有三个构造方法
publicB()
{
this("abc",888);
}
publicB(Stringname)
{
this();
}
publicB(Stringname,intage)
{
this(name);
}
};
这样就产生了一个问题,我们在讲this关键字时也是提到过的哈~
在使用this()调用构造方法的时候肯定要留下一个出口。
否则编译通不过哈~
classA
{
publicA(){}
};
classBextendsA
{
//里面有三个构造方法
publicB()
{
//最好把this("abc",888);修改成super()作为出口哈~
super();
}
publicB(Stringname)
{
this();
}
publicB(Stringname,intage)
{
this(name);
}
};
现在编译就通过了哈~
本季主要知识点:
1、继承的类图表示
2、继承的题目
现在我们来看个Demo03:
classA
{
};
classBextendsA
{
};
这个滴继承关系我们来用类图表示
知道了上面的内容,我们来看下练习题:
classPerson
{
privateStringname;
privateStringaddr;
privatecharsex;
privateintage;
//一般参数少的构造方法写在上面哈~~
publicPerson(){}
publicPerson(Stringname,Stringaddr)
{
this.setName(name);
this.setAddr(addr);
this.setSex('男');
this.setAge(27);
}
publicPerson(Stringname,Stringaddr,charsex,intage)
{
this.setName(name);
this.setAddr(addr);
this.setSex(sex);
this.setAge(age);
}
publicvoidsetName(Stringname)
{
this.name=name;
}
publicvoidsetAddr(Stringaddr)
{
this.addr=addr;
}
//M:
表示男;F:
表示女
publicvoidsetSex(charsex)
{
this.sex=sex;
}
publicvoidsetAge(intage)
{
this.age=age;
}
publicStringgetName()
{
returnthis.name;
}
publicStringgetAddr()
{
returnthis.addr;
}
publicchargetSex()
{
returnthis.sex;
}
publicintgetAge()
{
returnthis.age;
}
//所有的内容应该交给外部输出
publicStringgetInfo()
{
return"姓名:
"+this.name
+",地址:
"+this.addr
+",性别:
"+(this.sex=='M'?
"男":
"女")
+",年龄:
"+this.age;
}
};
classStudentextendsPerson
{
privatefloatmath;
privatefloatenglish;
publicStudent()
{
//默认隐含了super();
super();
}
pu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 基础 JAVAJavaSE 面向 对象 部分 14 高级 02
![提示](https://static.bdocx.com/images/bang_tan.gif)