课时61:继承定义限制

简介: 课时61:继承定义限制摘要:本内容讲解Java中继承的定义限制。Java不允许多重继承,只支持多层继承,且建议继承层次不超过三层。子类可以继承父类的所有非私有操作结构,但私有成员无法直接访问。示例代码展示了正确的多层继承和错误的多重继承情况。例如:```java// 错误的多重继承class C extends A, B {} // 正确的多层继承class B extends A {}class C extends B {}```通过继承,子类能扩展父类功能,但需遵循上述规则。

课时61:继承定义限制

 

摘要:本内容为继承的定义限制

 

继承要求

 

1.1、Java中不允许多重继承,只允许多层继承。


在实际生活中一个人只会有一个亲生父亲,在程序的逻辑中也是奉行此标准。而继承的主要目的是扩展已有类的功能,但多重继承可以同时继承多个类,将范围限定在同一类中。


假如已使用多层继承,此时对于C类同样可以继承拥有多个父亲的操作。但多层继承有限度,对于继承关系而言,如果自己写的代码,理论上不应超过三层。

 

class A { }
class B { }
class C extends A,B{ }//多重继承
public class JavaDemo {
     public static void main(string args[ ]) {

     }
  }
D:\mldn java>javac  JavaDemo. Java
JavaDemo.java:3:错误:需要’{‘
class C extends A,B{ }//多重继承
1 个错误
D:\mldnjava>

image.png

 

1 class A { }
2 class B extends A { }
3 class C extends B { } //多层继承
4 public class JavaDemo { 
5     public static void main(string args[ ]   {
6
7     } 
8  }

 

1 class A { }
2 class B extends A { }
3 class C extends B { } //多层继
4 class D extends C { }
5 class E extends D { }
6 class D extends C { } 
7 class D extends C { } 
8 class X extends Z { } 
9 public class JavaDemo {
10     public static void main(stringy args [ ] ) {
11
12     }
13  }

 

错误的继承:

Class A {}
Class B {}
Class C extends A,B {}//多重继承

正确的继承:

Class A {}
Class B extends A {}
Class C extends B {}//多层继承

 

1.2、在定义继承关系时,子类可以继承父类中的所有操作结构。


但私有操作属于隐式继承,而非私有操作属于显式继承。继承一旦发生,所有操作都可以被子类使用,在程序设计中不存在现实生活中“败家子”的概念,子类至少会维持父类的现有功能。

1   class Person {
2       private String name ;
3       public void setName (String name ) {
4           this.name = name ; 
5       }
6       public string getName () {
7            return this.name ;
8       }
9  }
10  class Student extends Person {
11     public student(string name) { 
12         setName(name) l;//设置name属性内容
13     }
14     public void fun ( ) {
15         // system .out .println (name) ;  //直接访问不可能,因为私有的
16        System.out.println(getNeme() ) ; //直接访问
17    }
18  }
19  public class JavaDemo  {
20       public static void main (string args [ ] {
21             Student stu =new Student (“林中强”) ;
22             syu.fun ()  ;
23        }
24    }

image.png

 

 

相关文章
|
IDE 编译器 开发工具
Dev C++下载地址和安装教程(图解版)
Dev C++ 是一款免费开源的 C/C++ IDE,内嵌 GCC 编译器(GCC 编译器的 Windows 移植版),是 NOI、NOIP 等比赛的指定工具。Dev C++ 的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。
53932 0
Dev C++下载地址和安装教程(图解版)
|
11月前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
7月前
|
Oracle Java 关系型数据库
课时48:JavaDoc文档简述
主要讲解了Java DOC文档的使用方法和技巧。首先,介绍了Java DOC的简介,强调了在开发过程中需要大量使用API文档。其次,详细解析了Java DOC的组成结构,包括位的完整定义、类的相关说明以及方法的详细解释。 1.Java DOC简介 2.Java DOC文档的组成
163 20
|
7月前
|
Java 程序员 数据处理
课时19:Java运算符(位运算符)
课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。
153 5
|
7月前
|
Java
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
176 5
|
7月前
|
Java C++
课时124:assert断言
assert断言的含义以及使用 1.断言的引入 2.生活实例理解断言 3.Java 中断言的使用
162 2
|
7月前
|
Java
课时10:Java数据类型划分(整型类型)
本文主要围绕Java中整型数据展开,详细讲解整型变量、常量的概念,整型数据运算规则,包括数据溢出问题及解决方法,数据类型转换(自动转换与强制转换)的原理和注意事项,同时介绍了整型数据默认值的相关知识,以及byte数据类型与int数据类型的关系和使用场景,帮助读者全面掌握Java整型数据的相关内容。
191 4
|
7月前
|
设计模式 Java uml
课时107:时序图
课时107介绍了时序图的描述与设计。时序图用于展示代码执行流程,如Java程序中接口IMessage、类MessageImpl及Factory的调用顺序。通过Power Designer创建UML Sequence Diagram,定义类操作结构并绘制消息传递路径,清晰呈现工厂模式下对象实例化和方法调用的过程。时序图帮助理解程序逻辑,适用于项目开发中的流程分析与文档记录。
208 1
|
7月前
|
测试技术
课时108:用例图
课时108介绍了用例图的设计与描述。用例图用于展示系统中不同角色的功能分配,如系统管理员拥有系统初始化、备份、公告发布等功能,而普通管理员仅负责公告管理。通过建立Use Cases图,可以直观呈现各角色的具体功能,帮助在项目设计阶段明确角色权限和职责。用例图是详细设计和概要设计的重要组成部分,有助于清晰表达系统的功能结构。
170 1
|
7月前
|
Java
课时103:生成jar文件
本文介绍了Java中生成和使用JAR文件的基本概念与操作。JAR文件用于将多个类文件打包成一个压缩文件,便于管理和分发。通过JDK提供的`jar`命令可以创建JAR文件,并可通过设置CLASSPATH环境变量来配置和使用这些文件。文中还演示了如何定义、编译和打包一个简单的Java程序为JAR文件,并详细解释了JAR文件的结构及配置方法。此外,简要提及了JDK 1.9后引入的模块化系统对JAR文件的影响。
189 1