面向对象Part3
继承:
Extends在英文中的翻译是拓展.
但是java允许多重继承. 一条线.单线.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在JAVA中,除了Object类, 每个类都有一个直接父类.
Object类是最高类.
override方法的覆盖(复写):
当父类中的某个方法不符合子类中的特征的时候,子类需要覆盖父类的方法重新编写.
子类方法覆盖父类方法,如果调用子类的方法,方法名和父类相同也会执行子类的方法,如果子类找不到调用的方法才会去父类中寻找,父类找不到再继续向上找直到找到为止.
方法的覆盖语法很简单. 方法名完全相同,只有方法的内容不同.方法名粘贴复制即可.
只有方法才有覆盖的概念,字段没有覆盖的概念.
子类的访问权限必须大于等于父类的访问权限.private不存在覆盖. @override用来判断子类方法是否覆盖了父类的方法.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
super关键字:
需求:在子类方法中调用父类中被覆盖的方法.
使用super.方法
子类初始化的过程:
在创建子类对象之前会创建父类对象.创建子类对象会调用子类构造器,在调用子类构造器之前会调用父类构造器.而且是无参的父类构造器super()
如果父类构造器是被写出来的.且不是无参数构造器.那么就需要自己写super()初始化构造器.而不用系统默认的隐藏的无参数构造器.
并且super()要作为第一个语句.因为必须要先有爸爸再有儿子. 1
如果父类没有可以被子类访问的构造器,则不能存在子类.因为子类的创建要先有父类.
因为name是类私有, 用getName进行暴露.
因为如果在子类中加入name.age信息,那么就必须要降低父类中name.age的限制安全等级.降为protected甚至更低才可以在子类中调用. 这样不利于信息安全.
说我我们在父类中设置name和age然后通过GetName向外暴露. 这样做的同时就修改了父类的构造器,将父类的构造器设置了参数,相应的,我们就需要修改子类默认的super(),
将super()加上name,age参数 如果外界需要调用age和name通过getName就可以调用. this.要看清是谁来调用 如果是在Animal中调用this.name = name. 那么this.name指的是Animal的成员变量
如果在Public void say里调用的this.color, say是Fish的方法.那么this.color指的是类Fish的Color = private String color.
static不能与this或者super共存. static是类级别的, this和super是对象级别的. \
----------------------------------------------------------------------------------------------------------------------------------
Object类和常用类:
面向对象Part3的更多相关文章
- 面向对象 part3 构造函数 原型函数
6.2创建对象 方法:对象字面量 object构造函数 缺点:都是创建单个对象.同一个接口创建多个对象,会产生大量重复代码 6.2.1工厂模式 用函数封装以特定的接口创建对象 function cr ...
- day 25 面向对象之接口、抽象类、多态、异常处理、反射、断言
复习 '''继承1.父类:在类后()中写父类们class A:passclass B:passclass C(A, B):pass2.属性查找顺序:自己 -> ()左侧的父类 -> 依 ...
- python自动化开发-[第八天]-面向对象高级篇与网络编程
今日概要: 一.面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) 2.__setattr__,__getattr__,__delattr__ 3.二 ...
- python基础——18(面向对象2+异常处理)
一.组合 自定义类的对象作为另一个类的属性. class Teacher: def __init__(self,name,age): self.name = name self.age = age t ...
- python语言(七)面向对象、异常处理
一.异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常).程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关).如果捕捉成功则进入另外一个处理分 ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- angular2系列教程(六)两种pipe:函数式编程与面向对象编程
今天,我们要讲的是angualr2的pipe这个知识点. 例子
- 一起学 Java(二)面向对象
一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
随机推荐
- [LeetCode] Binary Tree Preorder Traversal 二叉树的先序遍历
Given a binary tree, return the preorder traversal of its nodes' values. For example:Given binary tr ...
- 归一化方法 Normalization Method
1. 概要 数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见. 2. ...
- telent对端口检测状态分析
telnet基于TCP/IP协议通信的,把远程的shell反弹回本地! yum install -y telnet apt-get install telnet ###端口被封,有墙堵住 [root ...
- mysql判断一个字符串是否包含某子串
使用locate(substr,str)函数,如果包含,返回>0的数,否则返回0 例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头 update ...
- orcle函数的使用,及其调用
CREATE OR REPLACE Function getBdateT( D_Build date, Q_Date date) return Date as D_Return Date; /*返回的 ...
- angular路由——ui.route
angular路由 使用案例 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 【poj2154】 Color
http://poj.org/problem?id=2154 (题目链接) 题意 n个珠子的项链,可以染上n中颜色,项链可以旋转不能翻转,求染色方案数. Solution 经典的公式: \begin{ ...
- Ubuntu学习总结-12 linux 平台及 windows 平台 mysql 重启方法
一 Linux下重启MySQL的正确方法 1.通过rpm包安装的MySQL service mysqld restart2.从源码包安装的MySQL // linux关闭MySQL的命令$my ...
- Linux下介绍一款不错的HTML编辑器
编写HTML文档需要编辑器,在windows平台上我们可以用NotePad++,下面介绍一款Linux下的编辑器Komodo Edit,这是一款免费,开源的编辑器. 他对HTML的支持有其独到之处,我 ...
- python模块(shelve,xml,configparser,hashlib,logging)
1.1shelve模块 shelve 模块比pickle模块简单,只有一个open函数,返回类似字典对象,可读可写:key必须为字符串, 而值可以是python所支持的数据类型. shelve模块主要 ...