目录

一.继承

1.继承使用要点

二.instanceof关键字

三.方法的重写(override)

四.final关键字

五.组合


定义啥的就不说了,说说要点,跑跑代码。

一.继承

1.继承使用要点

1.父类也称作超类、 基类、派生类等。
2. Java 中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。
3. Java 中类没有多继承,接口有多继承。
4.子类继承父类, 可以得到父类的全部属性和方法(除了父类的构造方法), 但不见得可以直接访问(比如,父类私有的属性和方法)。
5. 如果定义一个类时,没有调用extends, 则它的父类是: java.lang.Object。

二.instanceof关键字

语法结构:对象 instanceof 类名

作用:判断一个对象是否属于某个类

返回值:布尔型

三.方法的重写(override)

子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。(重写函数名和形参列表必须相同,二重载形参列表不同!)
方法的重写需要符合下而的三个要点:

1."=":方法名、形参列表相同。
2. "<=": 返回值类型和声明异常类型,子类小于等于父类。
3.">=": 访问权限,子类大于等于父类。

class Person{int age;String name;Person(){}public void hello(){System.out.println("hello,sons!");}
}public class Student extends Person{String sex;public void hello(String str){System.out.println("hello,"+str);}public Person object(){ //如果这里Person改成Object的话,就会报错,因为超出了父类的范围!return new Person();}Student(int age,String name,String sex){this.age=age;this.name=name;this.sex=sex;}public static void main(String[] args) {Student stu1=new Student(22,"hh","女");System.out.println(stu1.name);System.out.println(stu1 instanceof Person);stu1.hello("Dad!");Person stu2=stu1.object();System.out.println(stu2 instanceof Student);}
}

四.final关键字

final关键字的作用:
1.修饰变量: 被他修饰的变量不可改变。一旦赋了 初值,就不能被重新赋值。
final int MAX_ SPEED = 120;
2.修饰方法:该方法不可被子类重写。但是可以被重载!
final void study(){}
3.修饰类:修饰的类不能被继承。比如: Math,String等。
final class A{}

五.组合

组合比较灵活。继承只能有一一个父类,但是组合可以有多个属性。所以,有人声称“组合优于继承,开发中可以不用继承”,但是,不建议大家走极端。
继承除了代码复用、也能方便我们对事务建模。所以,对于“is -a”关系建议使用继承,“has-a”关系建议使用组合。
比如:.上面 的例子,Student is a Person这个逻辑没问题,但是: Student has a Person就有问题了。这时候,显然继承关系比较合适。
再比如:笔记本和芯片的关系显然是“has-a”关系,使用组合更好。

eg:

class Chip{public void output(){System.out.println("我是芯片!");}
}public class Computer {Chip chip=new Chip();//将其他类对象放进来当作此类的一个属性,非继承而是组合public static void main(String[] args) {Computer computer=new Computer();computer.chip.output();}
}

百无聊赖之JavaEE从入门到放弃(七)继承相关推荐

  1. 百无聊赖之JavaEE从入门到放弃(二)基础语法

    目录 一.注释(单行,多行,文档) 二.标识符_关键字_驼峰原则 三.bug解决:Welcome.java:6: 错误: 编码GBK的不可映射字符 四.常量constant 五.数据类型 1.整型 2 ...

  2. 百无聊赖之JavaEE从入门到放弃(五)this的本质_对象创建过程的4 步_隐式参数 static

    目录 一.this关键字 1.对象创建的过程和this的本质 2.this最常的用法: 二.static关键字 三.变量分类 一.this关键字 1.对象创建的过程和this的本质 构造方法是创建Ja ...

  3. 百无聊赖之JavaEE从入门到放弃(十二)数组

    目录 一.基础知识 1.数组的定义 2.建议 3.注意 4.数组的默认初始化 二.基操示例代码 三.拷贝 四.Arrays类 一.基础知识 1.数组的定义 数组是相同类型数据的有序集合.数组描述的是相 ...

  4. 百无聊赖之JavaEE从入门到放弃(三)JVM内存机制

    一.从属于线程的内存区域 JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;我们将这部分归为一类. 1.程序计数器(Program Counter Register) 在JVM规 ...

  5. 百无聊赖之JavaEE从入门到放弃(六)包机制 静态导入

    一.包机制 包机制是Java中管理类的重要手段.开发中, 我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于文件夹对于文件的作用. 我们通过pac ...

  6. 百无聊赖之JavaEE从入门到放弃(九)封装详解 多态详解

    目录 一.封装 1.封装的作用和含义 2.编程中封装的具体优点: 3.封装的实现一使用访问控制符 4.关于protected的两个细节: 5.开发中封装的简单规则 6.javaBean 二.多态(po ...

  7. 百无聊赖之JavaEE从入门到放弃(四)垃圾回收机制(Garbage Collection)

    目录 一.垃圾回收原理和算法 1.内存管理 2.垃圾回收过程 3.垃圾回收相关算法 二.通用的分代垃圾回收机制 1.年轻代 2.年老代 3.永久代 4.三种GC 三. JVM调优和Full GC 四. ...

  8. 百无聊赖之JavaEE从入门到放弃(十)抽象方法_抽象类 接口

    目录 一.abstract 1.抽象方法 2.抽象类 3.抽象类的使用要点 4.示例代码 二.接口 1.接口是什么 2.接口的作用 3.区别 4.格式 (1)声明格式: (2)定义接口的详细说明 (3 ...

  9. 百无聊赖之JavaEE从入门到放弃(十一)string类 常量池原理 内部类

    目录 一.String类和常量池 1.String基础知识 2.常量池 二.内部类 1.概念 2.内部类的作用 3.注意 4.非静态内部类 5.静态内部类 6.匿名内部类 7.局部内部类 一.Stri ...

最新文章

  1. AI正从“感知智能”走向“认知智能”
  2. BCH大区块导致中心化其实是伪命题
  3. 移动端实现文字轮播_使用原生JS实现移动端图片轮播效果(一)
  4. MySQL 语句的执行顺序
  5. qvector 结构体排序_C++结构体的应用_YCOJ
  6. 本机连接虚拟机Oracle时报错的解决办法
  7. 施尧耘:量子计算终将实现;段路明:大规模量子计算还任重道远
  8. orm jdbc_Spring Data JDBC通用DAO实现–迄今为止最轻量的ORM
  9. 07-对图像进行膨胀操作
  10. 多站合一音乐搜索神器网站源码
  11. Windows Azure 革新 – TFS集成(WAWS第2部分)
  12. 动态数据源四种实现方案对比
  13. Java Scanner 类,获取用户输入的值
  14. 超级详细的SIMATIC STEP7 V5.5安装
  15. sat考试用计算机,SAT考试怎么选择计算器
  16. 在线Spirte图定位工具,自动生成CSS
  17. 抖音弹幕解析过程 PB数据转json 解决乱码 所有语言通用思路
  18. 黑白图片复原为彩色Picture Colorizer(图片着色器)
  19. 当图片被压缩时,图片变得模糊
  20. 数字 阅读与创造——读戴德金之三

热门文章

  1. Android-Kotlin-印章类
  2. UE4从外部修改材质参数
  3. MySQL运维基础面试问答题(42题)
  4. 红米10x和小米10青春版哪个好
  5. Hacker Net
  6. 小学科技创新项目计算机,2018学年第一学期学生科技类获奖情况汇总
  7. Xshell7家庭版
  8. ttf类型的字体文件压缩
  9. 用于数据保护的5款Linux加密工具
  10. opencv-python透明图和纯白背景图互转