子类与继承

Unity 游戏仿真
C#与Java语法差不多

java.lang.Object

Object是所有类的祖先类/始祖类
任何一个类最终都能转化为Object类的对象

Java库中的类是基础功能

复杂需求需要程序员自己写类

跨包friend无法继承,public才可跨包

未写访问权限默认friend,在跨包(不同包内)访问friend不可继承,只有public才可跨包。

  1. 跨包friend无法继承
  2. 在同一个包内friend才可继承

Java只有public继承(可以这样说)

即protected,private继承很少使用

Java不支持多重继承(子类只能有一个父类)

Java相对于C++的新措施:接口代替所谓的“多重继承”,严格意义上接口不是一个类

UML图继承&依赖

依赖关系:一个类的成员是另外一个类的对象,在UML图中用直线表示;
继承关系:一个类是另外一个类的子类,用空心三角形表示实线的结束。

包中唯一的public类可被包外访问,

包中的其他类不能直接被包外访问

Java成员变量初始值(默认值)为null

C++成员变量初始值是乱码,新版本已初始化

Java父类子类顺序随意放置

C++则要求父类在前,子类在后

C++父类指针指向子类对象,

子类指针不能指向父类对象

IDEA操作界面code

  1. override method复写(覆盖)
  2. implement method 重写(类似C++中“纯虚函数”)
  3. Generate constractor工具
    关联(挂钩)哪几个成员变量
    —①一个不挂钩
    —②挂钩一个
    —③挂钩几个

super关键字

子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所有。

super语句一定要放在构造函数第一行 super();

这是初学者误区,构造函数第一行指定super关键字

super完成父类名的功能 super.

  1. super.name //子类对象与父类对象重名(访问被隐藏的成员变量或方法(对象))
  2. this.name //当前子类对象(重名时用this,一般情况可不写)

注意事项

如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法(不带参数的构造方法),因此,当父类中定义多个构造方法时,应当包括一个不带参数的构造方法,以防止子类省略super时出现错误。

对继承机制的一种看法

当创建子类对象时,相当于同时创建了父类的对象,因为子类对象中隐藏了父类对象。

访问覆盖的成员变量和方法(访问被隐藏的成员变量和方法)

C++ 通过父类类名访问Person.student
Java 通过关键字super引用访问super.student

C++函数参数中一个有默认值,一个没有默认值

(系统这时还会给出默认构造函数)即相当于有两个默认构造函数,程序会报错
Java一刀切
不允许在函数参数(包括构造函数)中给默认值

在Java中给参数默认值会报错

子类函数与父类函数同名同参数,父类函数会被覆盖掉
Java无需virtual就能实现多态(C++需要)

只要覆盖了,程序就会调用覆盖后的东西

  1. 定义了->调用覆盖后的(调用已定义的)
  2. 未定义->调用继承而来的

系统级注释(在Java高级技术中很重要)

eg. @override
在Java高级技术中这种说明符不可删

?不是通过反编译还原函数

parameter1,parameter2,parameter3…

总结

  1. 类的位置不重要(子类父类顺序)
  2. Java只有一种public一种继承方式
  3. 不存在多重继承,一个子类只能有唯一一个父类,一个父类的子类可有多个(与人类伦理相似)(C++有点乱,有个电影中主人公有7个爹(多重继承))

key point

class … extends…
super();
super.

Edition

2021/10/12

Java实用教程笔记 子类与继承相关推荐

  1. Java实用教程笔记 子类与继承2

    子类与继承2 Review 继承方式比较 继承后子类对父类的访问权限说明 super关键字作用(2个) 构造函数的调用顺序 没有参数的构造函数即为默认构造函数 Lecture notes final关 ...

  2. Java实用教程笔记 Java多线程机制

    Java多线程机制 泛型要考,后来又说不考了 多线程不考 12.1 进程与线程Process and Thread 12.2Java中的线程Threads in Java 线程的状态与生命周期The ...

  3. Java实用教程笔记 类与对象

    类与对象 Abstract Body instanceof 文件后缀名 .py .c .cpp .java 成员函数/成员方法/行为 interface接口 可类比C++中抽象类 IDEA快捷键操作 ...

  4. Java实用教程笔记 组件及事件处理

    组件及事件处理 JFrame()常用方法 其中至少要掌握的 拓展 示例 AWT Swing SWT AWT 抽象窗口工具包 AWT(Abstract Window Toolkit),中文译为抽象窗口工 ...

  5. Java实用教程笔记 泛型与集合框架

    泛型与集合框架 Generics 链表 LinkedList < E >泛型类 接口回调 常用方法 LinkedList< E >泛型类实现Link< E >泛型接 ...

  6. Java实用教程笔记 接口与实现

    接口与实现 6.1接口(中间人) 接口方法全为public abstract 接口中没有构造函数,方法可以抛出异常 接口没有任何函数逻辑(对外开放) 接口可继承 接口.类(内部类.匿名类)都会生成cl ...

  7. Java实用教程笔记 输入、输出流

    输入.输出流 期末考试会从10.1考到10.5 源&目的地 10.1File类 创建一个File对象的构造方法 文件属性 目录 创建目录 列出目录中的文件 FilenameFilter接口 辨 ...

  8. Java实用教程笔记 常用实用类

    常用实用类 8.1 String类 判断引用是否为同一变量 常量池vs非常量池(动态区) equals 输出对象为内存地址的方式 "==" 运算结果为ture/false的比较方式 ...

  9. Java实用教程笔记 内部类与异常类

    内部类与异常类 Review Note 只有我能用,不希望别人用(内部类的基本思想) .class文件的生成个数 匿名类 匿名类都是一次性的(当前这一次,以后不能用) Conclusion Revie ...

最新文章

  1. R语言临床诊断试验的ROC分析方法示例
  2. 服务器 SSH客户端软件 FileZilla 和 xshell
  3. 自己制作 SPx N合1 自动安装盘(x86)
  4. zend framework mysql_Zend Framework连接Mysql数据库实例分析
  5. Zookeeper分布式一致性原理(一):分布式架构
  6. CSS技巧(含色卡)
  7. The writeAsCsv() method can only be used on data sets of tuples.
  8. Tomcat性能优化总结
  9. 作者:李海生(1974-),男,博士,食品安全大数据技术北京市重点实验室、北京工商大学计算机与信息工程学院教授、研究生导师...
  10. Linux内核分析 - 网络[三]:从netif_receive_skb()说起
  11. CnBlogs博文demo演示技巧比较:jsfiddle完胜
  12. php用哪个ui框架好,常用的前端UI框架有哪些
  13. Linux网卡驱动(4)—DM9000网卡驱动程序完全分析
  14. linux usb 从芯片,新人求教,怎么烧录Linux系统到一个小芯片上?
  15. stay foolish, stay hungry
  16. 动态监控网卡流量异常
  17. 拜托,使用 Three.js 让二维图片具有 3D 效果超酷的
  18. html盒子连续点击连续移动,html盒子整体向下移动
  19. Elasticsearch根据日期(年-月-日 时:分:秒)进行range(时间范围筛选)
  20. 全球及中国口腔医疗行业投融资现状与与运营效益分析报告2022版

热门文章

  1. VMware vSphere 5.5   和 ESXi 5.5 序列号搭配
  2. crontab实例分析(转)
  3. 【原创】WinCE下流驱动开发流程
  4. 打算写一个ASM集成开发环境
  5. linux进程管理机制,linux进程管理,linux进程管理机制
  6. defaultdict python_python中defaultdict的用法详解
  7. linux一个网卡绑定多个端口,RedHat实现多网卡绑定
  8. 计算机莫名其妙的游戏网页弹出,自动弹出游戏网页怎么办 自动弹出游戏网页解决方法【详解】...
  9. python 时间格式 工作日_python使用time、datetime返回工作日列表实例代码
  10. CSDN 中秋节日礼品盒 | 中秋节快乐