Java基础8(Javaoo3)——继承
2016-10-30 20:32
369 查看
Java基础8(Javaoo3)——继承
1.类与类之间的关系—— is a(继承)// 猫类是宠物类(是)
--has a(拥有)// 男人类拥有女朋友类(拥有)
--use a(用)// 警察类查车类(查的时候用一下)
概念:把具有相同属性与行为的类进行抽取设计为父类,子类会自动具备来自于
父类的属性和行为(子类只需写自己特有的属性和行为,父类书写子类共有的属性
和行为)(子类通过继承父类可以提高代码的复用性,代码修改少,可多次调用)
java是单继承类型!某些OOP语言(C++)允许子类有多个父类,但是在Java中这
是不允许的,在Java中一个类只能有一个父类!子类永远指向父类!子类→父类
继承的优点:①代码的可重用性②父类的属性和方法可用于父类③设计应用程序
变得更加简单④子类可以扩展父类的属性和方法
2.extends:继承父类属性和行为的关键字 例:YearEmployee extends Emplo
yee
3.Object是所有类的根类!所有类默认继承Object类!
4.方法的重写:不是一个类而是在继承关系中,子类把来自于父类的方法重新实现
一次.
重写的要求:-方法名必须一致
-参数列表必须一致
-返回类型必须一致
-访问修饰符必须大于等于父类方法的访问修饰符
-重写方法不能抛出比父类被重写方法更多的异常
5.equals方法的重写 eqauls()-是用来判定两个对象在业务上是否相等
使用场景:有时在业务上我们不需要将两个对象的所有属性进行对比,只需要
部分属性的对比,这时我们就需要对equals方法进行重写
区别:引用数据类型中变量用“==”号不是比较对象中的内容是否相等,而是
比较两个对象变量是否指向同一个对象(区分equals)
6.toString方法的重写 toString()-返回对象的字符串描述
使用场景:当我们对字符串进行直接操作时,比如:打印对象,字符串拼接时
根据业务需求,我们可以重写该方法
7.finalize(非关键字) 销毁对象的方法,由GC直接调用
8.final(可选修饰符,关键字)的作用:
-final修饰变量时这个变量变成常量
-final修饰方法时这个方法就不能被重写
-final修饰类时这个类不能被继承(这种类被称为终态类,最终类)
9.内存实现:内存叠加的方式
10.构造方法不会被继承,因此构造方法也不会被重写.
分析原因:①语法:父类的构造方法不可能继承到子类中,这样会与子类的构造
方法冲突.
②面向对象:子类不可能拥有一个产生父类的对象的方法,不合理!
11.父类构造方法不会被继承,但是会参与子类对象的构造!
分析:我们在new子类时,先会调用父类构造方法产生父类对象部分,再调用
子类构造方法产生子类对象特有部分.然后叠加起来产一个子类对象(即:内存的
叠加)
12.super用法与this用法的对应学习:(要加以对比区分)
①this用法:1.this()的用法:调用本类的其他构造方法,并且只能写在构
造方法的第一句,this()是没有系统默认的,不写不会调用!
2.this .****或this.***()的用法:this.指代当前对象,可以看到
本类定义的所有属性和方法,不受访问修饰符的限制,可以看到从父类继承的属性
和方法,但是会受到访问修饰符的限制(public可见,private不可见)
②super用法:1.super()的用法:调用父类的指定构造方法,只能写在构造方
法的第一句,super()是有系统默认的,就算不写,系统也会默认调用父类的无
参构造。(即:我们不写super()或者super(参数),系统也会自动默认我们有一个
super()来调用父类无参构造!)
2.super.***或者super.***()的用法:访问不到本类定义的任何属
性和方法,可以看到继承于父类的属性和方法,但是受访问修饰符的限制.(代表每
个类中指向父类对象部分的引用)
区分:通过上面的对比可以知道,this()和super()不会同时出现(两者
都要求写在构造方法的第一句),this.的功能比super.的功能强(本类访问this.
都能看到,super.不行,父类访问两者都受到访问修饰符的限制)
特例:当我们需要调用一个被重写的方法在父类中的实现(即:调用方法重写
前的效果),这时我们要用super.,其它时候我们均用this.(调用方法重写后在本
类的实现)
相关文章推荐
- [Java]基础知识复习:例外的在继承中的机制
- java基础 ---继承和多态
- Java基础08-静态与继承
- Java语言基础--继承
- java基础语法、继承与重载、super、static、finally、String与StringBuffer的深入理解
- 黑马程序员Java基础之多态与继承、覆盖与重载
- OO基础:继承+多态+重载+重写
- java基础4--面向对象(下)(继承、final关键字)
- C\C++ 程序员从零开始学习Android - 个人学习笔记(八) - java基础 - 继承、抽象类、接口、内部类(待续)
- java基础教程-继承
- java基础-----访问权限,继承,super
- 编程需要注意陷阱:Java继承是有害的-Java基础-Java-编程开发
- 基础的Java继承
- Java基础:第三十七讲 成员方法的继承与覆盖
- java 继承的基础
- Java语言深入-构造函数的继承问题-Java基础-Java-编程开发
- Java基础:第三十三讲 父类与继承
- Java 基础一些代码练习笔记(继承+接口+多态)
- java 基础---面向对象(继承)
- OO基础之继承