子类与父类

  子类

class  子类名  extends  父类名{
    .......
}

  类的树形结构

子类的继承性

  子类和父类在同一包中的继承性

子类继承了父类不是private的成员属性和成员方法

    子类和父类在同一包中的继承性

//子类中只继承protected和public的成员变量和成员方法

    继承关系的UML

子类与对象

//当使用子类构造方法创建对象的时候,不仅子类声明中的成员变量被分配了内存,而且父类的成员变量也分配了内存空间

成员变量的隐藏和方法重写

  成员变量的隐藏:

/*
*当子类的成员变量和父类的成员变量出现同名时(变量类型可以不同),这样子类就会隐藏
*所继承的成员变量
*/

  特点:

/*
*之类对象已经自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量
*子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量,也就是说,子类继承的
*方法所操作的成员变量一定是被子类继承或者隐藏的成员变量
*/
/*
子类继承的方法只能操作子类继承和隐藏的成员变量
子类新定义的方法可以操作子类继承和子类新声明的成员变量,但无法操作子类隐藏的成员变量(若要操作需要使用super关键字操作子类隐藏的成员变量)
*/

    方法重写

子类通过重写可以隐藏已继承的方法(方法重写又称方法覆盖)
重写规则:
1.如果子类可以继承父类的某个方法,这个子类就有权利重写这个方法。
2.子类的方法名字,返回类型,参数类型个数都要和父类的一致才算是重写
3.@Override
/*
重写的目的:
隐藏继承的方法,增加拓展功能
*/
/*
注意事项:
重写父类的方法时,不允许降低方法的访问权限,但可以提高访问权限
高到低:public--->protected--->友好的--->private */

super关键字

/*super代表指向父类

子类一旦隐藏继承的成员变量/方法,那么子类创建的对象就不再拥有该变量/方法,该变量将归关键字super所有,可以使用super来访问

*/
/*
*在加载子类的时候回 super()调用父类的默认构造方法
*/

final关键字

/*
*fina可以修饰类,成员变量,方法中局部变量
*/
final class A{ } /*
final 修饰的类不能被继承,不能有子类;
*/ //final 修饰方法,那么这个方法不允许子类重写,也就是说,不允许子类隐藏可以继承的final方法老老实实继承,不许任何修改 public final void method(){ } //final 修饰的变量,就是常量,运行期间不允许修改

对象的上转型对象

Animal   a;
a=new Tiger();
//或者
Animal a;
Tiger b=new Tiger();
a=b; /*
* 这时就称a是对象b的上转型对象
*/

  特点:

/*
上转对象不能操作子类新增的成员变量/方法(失掉这一部分属性)
上转对象可以访问子类继承或者隐藏的成员变量/方法,
*/

继承与多态

/*

动态性:指父类的某个方法被父类的某个方法被子类重写时,可以产生自己的功能行为

*/

abstract类和abstract方法

/*
用关键字abstract修饰的类称为abstract类(抽象类)
*/
abstract class A{ } /*
使用关键字abstract修饰的方法称为abstract方法(抽象方法)
*/
abstract int min(int x,int y); abstract class A{//抽象类
abstract int min(int x,int y);//抽象方法
int max(int x,int y){
return x<y?y:x;
}
}

特点:

/*
1.abstract类 不能用new运算符创建对象
继承抽象类的类必须重写抽象类的抽象方法(不能使用abstract和final修饰同一个方法) 2.abstract类中可以有abstract方法 3.abstract的子类
如果一个非抽象类继承该抽象类,必须重写父类的抽象方法(给出方法体),如果是抽象类继承抽象类则,可重写或者继承 4.abstract类的对象作上转型的对象
抽象类可以 抽象出重要的行为标准,该标准用抽象方法来表示。
抽象类声明的对象可以成为其子类的对象的上转型对象 */

面向抽象编程

在程序设计时,经常使用抽象类,原因是:abstract类只是关心操作,而不关心这些操作具体的实现的细节,

开-闭原则

/*
让设计的系统对扩展开放,对修改关闭
*/

小结

Java基础知识笔记第五章:子类与继承的更多相关文章

  1. Java基础知识笔记第七章:内部类和异常类

    内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...

  2. Java基础知识笔记(五:多线程的同步问题)

    编写多线程程序往往是为了提高资源的利用率,或者提高程序的运行效率,或者更好地监控程序的运行过程等.多线程同步处理的目的是为了让多个线程协调地并发工作.对多线程进行同步处理可以通过同步方法和同步语句块实 ...

  3. Java基础知识笔记第六章:接口

    接口 /* 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体 */ interface Printable{ final int max=100; void ...

  4. Java基础知识笔记第四章:类和对象

      编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 class Person{ ....... } class 植物{ ....... } 类体 类使用 ...

  5. Java基础知识笔记第三章:运算符表达式语句

    算术运算符与表达式 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * ...

  6. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  7. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  8. JAVA基础知识笔记

    1.类只能用Public修饰,不能使用protected.private修饰.也可以不加修饰符,称做友好类. 2.类的实体元素包含成员变量和方法的定义,成员变量分为实例变量和类变量(static修饰的 ...

  9. java第五章 子类与继承

    5.1子类与父类 1   java不支持多重继承,即一个子类不可以从多个父类中同时继承,而C++中可以. 人们习惯地称子类与父类的关系式“is—a”的关系 2   再类的声明过程中,通过关键字exte ...

随机推荐

  1. windows cmake与nmake

    在Linux下编库经常会使用CMakeLists.txt文件,然后一个cmake 再一个make就可以编译出来. 在Windows下有cmake,但是cmake出来是一个Visual Studio工程 ...

  2. [lua]紫猫lua教程-命令宝典-L1-01-02. 变量

    L1[变量]01. 变量命名规则 命名规则:数字字母下划线构成 但是不能数字开头 不推荐中文名 很多都是不支持中文 但是在一些其他的编辑器里面 比如触摸精灵 之类的 就可以 注意 :变量命名必须要包含 ...

  3. shell的debug模式

    如何调试shell脚本? 在指定shell运行版本时加上 '-x' #!/bin/bash   -x ➜ demo git:(master) ✗ cat debug.sh #!/bin/bash -x ...

  4. winform datagridview 同步滚动

    //首先添加 Scroll事件//同步滚动 private void dgYY_Scroll(object sender, ScrollEventArgs e) { ) { dgFee.FirstDi ...

  5. 05hive函数

    一. 系统内置函数 1)查看系统自带的函数 hive> show functions; 2)显示自带的函数的用法 hive> desc function upper; 3)详细显示自带的函 ...

  6. Android学习使用基本界面组件(下拉框,单选框,复选框,数字转轮,滚动条)

    (一)建立单选框按钮 RadioGroup和RadioButton建立单选框按钮 字符串资源文件: <resources> <string name="app_name&q ...

  7. SpringMVC注解@RequestMapping全面解析

    @RequestMapping 可以出现在类级别上,也可以出现在方法上.如果出现在类级别上,那请求的 url 为 类级别上的@RequestMapping + 方法级别上的 @RequestMappi ...

  8. 在服务器CentOS7版本安装Nginx

    简介 经常用使用Nginx来部署我们的网站,我的服务器是CentOS7.我不喜欢使用下载一个Nginx解压包然后解压的那种,我喜欢下面的这种. 安装 yum包管理工具是不带nginx,所以得先添加,在 ...

  9. Plastic Sprayers Manufacturer -Plastic Spray Bottle Product Features, Nozzle Properties

    Nowadays, plastic spray bottles are widely used in the plastic packaging industry. What are the char ...

  10. Spring Boot 编辑器 IDEA 免费许可申请

    最近 IDEA 陆续到期(试用版)听说可以申请开源许可,试试吧. 点击 https://www.jetbrains.com/shop/eform/opensource?product=ALL 填写相关 ...