JAVA中的继承和重写
来源:互联网 发布:软件平台用户手册模板 编辑:程序博客网 时间:2024/06/04 19:09
1.1 继承的概述
在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
1.2继承的格式&使用
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。
格式:
class子类extends父类{}
案例代码一:
package com.itheima_01;/* * 继承:多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类),在让多个类去继承这个父类,我们的多个类就可以获取到父类中的成员了。 * extends * */public class ExtendsDemo {public static void main(String[] args) {DotA1 d = new DotA1();d.start();LOL1 l = new LOL1();l.start();}}class Game1 {String name;double version;//版本号String agent;//代理商public void start() {System.out.println("游戏启动了");}public void stop() {System.out.println("游戏关闭了");}}class DotA1 extends Game1 {/*String name;double version;//版本号String agent;//代理商public void start() {System.out.println("游戏启动了");}public void stop() {System.out.println("游戏关闭了");}*/}class LOL1 extends Game1 {/*String name;double version;//版本号String agent;//代理商public void start() {System.out.println("游戏启动了");}public void stop() {System.out.println("游戏关闭了");}*/}
1.3 继承的特点
这种情况是不合法的。
class A{}
class B{}
class C extends A,B{} // C类不可以同时继承A类和B类
2、一个父类可以被多个子类继承,例如下面这种情况是允许的。
class A{}
class B extends A{}
class C extends A{} //类B和类C都可以继承类A
3,java中类不可以多继承,但是可以多重继承
下面这种情况是允许的。
class A{}
class B extends A{} //类B继承类A,类B是类A的子类
class C extends B{} //类C继承类B,类C是类B的子类,同时也是类A的子类
4、在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。例如上面的这种情况中,B类是A类的子类,同时又是C类的父类
案例代码二
package com.itheima_01;/* * Java中继承的特点: * Java语言只支持单一继承,只能继承一个父类(一个儿子只能有一个亲爹) * Java语言支持多层继承(一个儿子可以有一个亲爹,还可以有一个亲爷爷) * */public class ExtendsDemo2 {public static void main(String[] args) {LOL l = new LOL();l.update();l.start();}}class Game {public void start() {System.out.println("游戏启动了");}}class PCGame extends Game {public void update() {System.out.println("PCGame更新了");}}class MobileGame extends Game {public void update() {System.out.println("MobileGame更新了");}}class LOL extends PCGame {}
1.4 继承中成员变量的特点
A:子类只能获取父类非私有成员
子父类中成员变量的名字不一样直接获取父类的成员变量
子父类中成员变量名字是一样的获取的是子类的成员变量
B:就近原则:谁离我近我 就用谁
如果有局部变量就使用局部变量
如果没有局部变量,有子类的成员变量就使用子类的成员变量
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
C: super:可以获取父类的成员变量和成员方法,用法和this是相似的
案例代码三
package com.itheima_01;/* * 继承中成员变量的特点 * 子类只能获取父类非私有成员 * 子父类中成员变量的名字不一样直接获取父类的成员变量 * 子父类中成员变量名字是一样的获取的是子类的成员变量 * * 就近原则:谁离我近我就用谁 * 如果有局部变量就使用局部变量 * 如果没有局部变量,有子类的成员变量就使用子类的成员变量 * 如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量 * 啥都没有,出错了!!! * * super:可以获取父类的成员变量和成员方法,用法和this是相似的 */public class ExtendsDemo3 {public static void main(String[] args) {Kid3 k = new Kid3();k.show();}}class Dad3 {String name = "建霖";}class Kid3 extends Dad3 {String name = "四葱";public void show() {String name = "五葱";System.out.println(super.name);System.out.println(this.name);System.out.println(name);}}
案例代码四
子类中重写了这个方法,调用子类的
方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法
package com.itheima_01;/* * 继承中成员方法的特点 * 子类中没有这个方法,调用父类的 * 子类中重写了这个方法,调用子类的 * 方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法 方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关 */public class ExtendsDemo4 {public static void main(String[] args) {Kid4 k = new Kid4();k.eat();}}class Dad4 {public void eat() {System.out.println("小酌两口");System.out.println("去睡觉了");}}class Kid4 extends Dad4 {public void eat() {System.out.println("好好吃饭");}}
- JAVA中的继承和重写
- java中的继承和方法的重写
- Java继承和重写
- 【Java】继承和重写
- JAVA继承和重写
- java中的继承和多态以及重载和重写
- java 继承中的方法重写
- Java:关于继承中的重写
- java 继承中的重写、重载、多态
- java 继承中的重写父类方法
- Java中的继承,重写与遮蔽
- Java中多层继承中的方法重写
- 重写和继承关系中的构造方法
- Java中继承、多态、重载和重写
- Java中类的继承和重写
- Java面向对象之继承和重写
- 初学java--重载,重写和继承
- java中的重载和重写
- 阿里云深度学习平台试玩
- 排序
- java基础——流程控制语句(顺序结构)
- 第四章 INI配置——《跟我学Shiro》
- HTML5标签点击事件方法:无法传递对象类型参数
- JAVA中的继承和重写
- 封装jquery插件的两种方式
- HTML 实体符
- HDU1158-Employment Planning(dp)
- Maven工程修改jdk版本
- 物品存储与背包系统
- 主动降噪技术
- Vue.js——60分钟快速入门
- caffe中关于train_val.prototxt和solver.prototxt设置的一些心得