JAVA学习(六):JAVA中的继承及其常见问题分析
2023-09-14 08:57:58 时间
JAVA中,类的继承是通过扩展其他类而形成新类来实现的,原来的类称为父类(Super Class)或基类,新的类称为原来类的子类或派生类。在子类中,不仅包含了父类的属性和方法,还可以增加新的属性和方法,从而使得父类的基本特征可被所有子类对象共享。
注:类的继承并不改变类成员的访问权限,也就是说,如果父类的成员是公有的、被保护的或默认的,它的子类仍具有相应的这些特性。
/******************************************************************/ //类继承的定义格式 Class ChildClass extends FatherClass //ChildClass类继承FatherClass ,ChildClass是子类,FatherClass是父类 //类的主体 /******************************************************************/
JAVA的继承规则:JAVA不支持多重继承,只允许一个类直接继承另一个类,即子类只能有一个父类,也就是说,extends关键字后面只能有一个类名。尽管一个类只能有一个直接的父类,但是它可以有多个间接的父类。
在继承中常遇到下图中的问题:
以下结合代码进行分析:
产生问题的代码如下:
public class Ooprogram { // 父类 public void say(){ System.out.println("我是父类!"); public class ChildOoprogram extends Ooprogram{ //子类继承父类 public void childsay(){ System.out.println("我是子类!"); public static void main(String [] args) { Ooprogram father=new Ooprogram(); //创建父类 father.say(); //父类调用父类 ChildOoprogram child=new ChildOoprogram(); // 创建子类 child.say(); //子类调用父类 child.childsay(); //子类调用子类
正确的代码如下:
public class Ooprogram { // 父类 public void say(){ System.out.println("我是父类!"); public class ChildOoprogram extends Ooprogram{ //子类继承父类 public void childsay(){ System.out.println("我是子类!"); public static void main(String [] args) { Ooprogram father=new Ooprogram(); //创建父类 father.say(); //父类调用父类 ChildOoprogram child=father.new ChildOoprogram(); // 创建子类 child.say(); //子类调用父类 child.childsay(); //子类调用子类
它们的区别在于:如何创建子类,即:
ChildOoprogram child=new ChildOoprogram(); // 创建子类 ChildOoprogram child=father.new ChildOoprogram(); // 创建子类
学习java知道这五个网站就够了 好吧,这很难反驳!如今,编程比以往任何时候都更加蓬勃发展,而且这种趋势预计只会增长。根据美国 code.org 的数据,未来 10 年计算机科学领域将有 140 万个工作岗位。编程技能将很快成为任何行业更高级别专业人员的标准要求,就像现在的 PC 用户技能一样。 因此,即使您不是 学软件的,而是未来的设计师、销售经理或营销策略师,熟悉编程也是一对你工作中有所帮助。
Java学习之路006——Servlet开发 包括引入servlet的api库、IDEA2022配置servlet有关操作,以及servlet的xml配置与注解使用;以及简单的servlet编程实现。
Java学习之路003——集合 Java基础操作之——集合。文章演示了集合的一些常规常用的操作,以及遍历、Set集合、Map集合、和一些集合操作工具的使用。
相关文章
- 如何创建并运行java线程
- Java I/O学习(附实例和详解)
- JAVA学习(五):Java面向对象编程基础
- JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- JAVA学习(一):Java介绍及其平台、开发环境的配置与搭建
- java学习笔记6--类的继承、Object类
- Java实现 LeetCode 10 正则表达式匹配
- java矩形的关系
- java struts2入门学习实例--使用struts2快速实现上传
- DEFAULT keyword in ABAP and Optional Class in Java
- Java学习之路 之 提问及解决篇
- Java 学习笔记
- spring-java项目中连接redis数据库
- Java_IO流(精讲)包含练习题及答案
- java swing一篇轻松学习(高考后可以自学)
- 别样JAVA学习(六)继承下(2.3)异常下
- Java学习路线-57:静态代理和动态代理
- java 接口和抽象类的一个最大的区别
- java的接口为什么不能实例化
- JavaSE学习总结(九)—— Java访问数据库(JDBC)
- JAVA虚拟机源码学习笔记之二
- Java学习笔记(九)——继承
- Java学习笔记(六)——方法
- java===java基础学习(5)---文件读取,写入操作
- 【一起学Java-第二篇】Java语言开发环境
- Java爬虫实战一之获取全国信息
- 学习笔记(01):Java小白修炼手册-面向对象编程之接口逻辑与应用