一、继承

1.子类继承父类,通过一个关键字 extends

2.子类的对象可以调用父类中的(public protected)属性和方法 当作自己的来使用

3.子类可以添加自己独有的属性和方法

4.子类从父类中继承过来的方法不能满足子类需要,可以在子类中重写(覆盖)父类的方法 更多的是指内容

5.每一个类都有继承类。如果不写extends关键字,默认继承Object,如果写了extends则继承后面那个父类

可以理解为Obiect类非常重要 是任何一个引用类型的父类(直接或间接的继承Object)Object类没有父类

6.Java中继承是单个存在的(单继承)每一个类都只能有一个继承类(在extends关键字后面只能写一个类)

可以通过传递的方式实现多继承的效果 后续还有多实现

二、

           方法重写override                             方法重载overload
1.类 产生两个继承关系的类 一个类中的一组方法
子类重写父类的方法
2.权限 子类可以大于等于父类 没有要求
*3.特征 final static abstract 没有要求
父类方法是final 子类不能重写
父类方法是static 子类不存在
父类方法是abstract 子类必须重写
(子类是具体必须重写 否则子类是抽象类 可以不重写)
4.返回值 子类可以小于等于父类 没有要求
5.名字 子类与父类一致 一个类中好多方法名必须一致
6.参数 子类与父类一致 每一个方法的参数必须不一致(个数 类型 顺序)
*7.异常 运行时 编译时 没有要求
如果父类方法抛出运行时异常
子类可以不予理会
如果父类方法抛出编译时异常
子类抛出异常的个数少于等于父类
子类抛出异常的类型小于等于父类
8.方法体 子类的方法内容与父类不一致

三、小细节知识点补充

三目运算符

(a>b)?x:y;

Object类中的方法

hashCode() 将对象在内存中的地址经过计算得到一个int整数

public native int hashCode();

equals() 用来比较两个对象之间的内容 Object默认效果是==

可以比较基本类型(比较值)可以比较引用类型(比较地址)

equals方法时Object中继承过来的方法 默认效果比较地址

如果想要改变其规则 可以进行方法重写

public boolean equals (Object obj){

return (thisobj);

}

toString() 打印输出时将对象变成String字符串

public String toString(){

return this.getClass().getName()+"@"+Interger.toHexString(this.hasCode)

}

getClass() 获取对象对应类的类映射(反射)

wait() 线程进入挂起等待状态 存在方法重载

notify() 线程唤醒

notifyAll() 唤醒所有

finalize() 权限修饰符时protected 在对象被GC回收的时候 默认调用执行的方法

final finally finalize的区别

protected void finalize(){

}

clone() 权限修饰符时protected 为了克隆对象

四、关于this和super的使用

this和super都是指代词 代替的对象

this代替的是当前执行方法时的那个对象 不一定是当前类的

super代替的是当前执行方法的对象的父类对象 空间内部的那个

都能调用一般属性 和一般方法

可以放置在类成员的任意位置(属性 方法 构造 块)

注意调用一般方法的时候可以来回调用(写法 编译好用)执行可能产生问题(StackOverflowErro)

实例

package 类的继承;

public class Animal {
public Animal() {
System.out.println("animal中无参数的构造方法");
}
public Animal(int a) {
System.out.println("animal中int参数的构造方法");
}
public void eat() {
System.out.println("动物吃饭的方法");
} public void sleep() {
this.eat();
//?动物吃饭 人类重写的吃饭
//代替的是当前调用方法是的那个对象 不一定是当前类(不是animal)
System.out.println("动物的睡觉方法");
}
}
package 类的继承;

public class Person extends Animal{
public Person() {
//隐藏了一行代码 super();
this(10);
System.out.println("person中的无参数构造方法");
} public Person(int a) {
super(); //super指代的是当前执行方法时的对象的父类对象即animal
System.out.println("person中的int参数构造方法");
} //方法重写
public void eat() {
System.out.println("人类吃饭的方法 讲究色香味俱全");
} //添加一些独有的属性 或 方法
public void study() {
System.out.println("good good study, day day up");
}
}

第十一周总结 继承、this和super的区别和用法、方法的重写和重载的更多相关文章

  1. 【java】学习路线7-继承、super方法、重写、重载

    /*继承-java只有单继承如果你创建了很多个class,但是之间有很多相同的成员变量和成员方法,修改的时候又要多处修改好麻烦,此时就可以创建多一个类来存储这些重复的东西,统一管理.相当方便.*//* ...

  2. Objective-C 类的继承、方法的重写和重载

    一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序.Objec ...

  3. C# 继承实现父类方法、重写、重载

    继承是派生类(子类)去实现(重写<override>.重构<new>)基类(父类)的方法或属性.从而获取在派生类中要实现的功能. 子类调用父类构造方法,在父类中有个实现姓名和年 ...

  4. 201871010111-刘佳华《面向对象程序设计(java)》第十一周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十一周学习总结 实验九  泛型程序设计技术 实验时间 2019-11-8 1.实验目的与要求 (1) 理解泛型概念: (2 ...

  5. 201871010123-吴丽丽《面向对象程序设计(Java)》第十一周学习总结

    201871010123-吴丽丽<面向对象程序设计(Java)>第十一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. 201871010101-陈来弟《面向对象程序设计(Java)》第十一周学习总结

    201871010101-陈来弟<面向对象程序设计(Java)>第十一周学习总结 实验九  泛型程序设计技术 实验时间 2019-11-8 第一部分:理论基础知识 1.什么是泛型类 泛型是 ...

  7. 201871010104-陈园园 《面向对象程序设计(java)》第十一周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第十一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  8. 201871010105-曹玉中《面向对象程序设计(java)》第十一周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十一周学习总结 项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/ ...

  9. 201871010106-丁宣元 《面向对象程序设计(java)》第十一周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

随机推荐

  1. Puppet学习笔记(CentOS6.3+Puppet3.01)

    Puppet学习笔记(CentOS6.3+Puppet3.01)  技术 Add comments Oct262012 下了决心,好好学习puppet,周末专门去参加一个puppet的培训,难得朋友那 ...

  2. SpringBoot框架(5)-- @EableAutoConfiguration项目应用

    场景:在项目中想在当前maven项目中自动装配其他自定义的Maven项目,例如,创建数据库配置中心,被夺多个maven引用,希望简单配置,就实现springboot自动装配数据库配置类. 由此我们联想 ...

  3. ROM和RAM的内存详细说明

    1.首先是ROM 的读取是需要提前两个地址的读取,所以要想读取0地址的数据,你需要给地址是2 2.关于宽度,深度的计算 假设我们要存取如下取模的数据,该模的设置口语描述为:这是显示的2个字节,其中一个 ...

  4. 珍珠x

    题目描述 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面给出 ...

  5. selenium+键盘鼠标

    一.简单操作 1.点击(鼠标左键)页面按钮:click() 2.请空输入框:clear() 3.输入字符串:send_keys() 二.模拟键盘 模拟键盘的操作需要先导入键盘模块:from selen ...

  6. css命名和书写规范

    前言 在项目开发中对于css名字的命名和书写老是感觉很混乱,这对于代码的可读性以及维护提出了挑战,所以在闲暇之余看了一些这方面的内容,现总结如下... 1.命名规则说明 所有的命名最好都小写 属性的值 ...

  7. 为什么在vmware中不能使用ctrl+alt+F1~6切换到字符控制台

    为什么在vmware中不能使用ctrl+alt+F1~6切换到字符控制台 是因为vmware虚拟机的快捷键: ctrl+alt也用到了 因为vmware本身的hot keys也用到了ctrl+alt: ...

  8. 转 实例具体解释DJANGO的 SELECT_RELATED 和 PREFETCH_RELATED 函数对 QUERYSET 查询的优化(二)

    https://blog.csdn.net/cugbabybear/article/details/38342793 这是本系列的第二篇,内容是 prefetch_related() 函数的用途.实现 ...

  9. 五、SpringBoot—HelloWorld案例

    弱弱的补充一下啊,,,上一讲如果个别同学创建完项目之后发现项目pom.xml文件或者项目其他地方报错,你可以安装下图操作: HelloWorld案例: 编写好之后启动项目(贼姬霸简单) 启动成功: 浏 ...

  10. Python基本语法_文件操作_读写函数详解

    目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...