前言

类的继承性是面向对象语言的基本特性,多态性前提是继承性。Java 支持继承性和多态性。——Java从小白到大牛

继承:三大特性之一,关键词:extends

简单用伪代码去介绍一些

假设需要定义个student类

public class Student{

private String name;//名字

private int age;//年龄

private int sex;//性别

}

再来个需求,需要定义一个学生Andy,不用继承时候,需要一个个去定义;

public class Andy{

private String name;

private int age;

private int sex;

private String country;//新增一个国家信息

}

从上面看两者有着很多的相似的重复定义的东西,如果使用继承去写这段代码就可以如下:

public class Andy extends student{

private String country

}

所以从上面可以看出类的继承大致用途,Andy类已经继承了Student类,上面的父类便是student,extends后面跟着的。继承的时候,要明确指出,要不然就是在Java标准根类Object进行继承。

再者,在继承的过程中,除了你可以在新的类中去添加东西,也不一定非得使用基类的方法属性等。

还可以有多层继承关系(下面的输出是随便定义的伪代码,可以是直接输出某一些语句,方便运行查看)

class Art{

Art(){输出1}

}

class Music extends Art{

Music(输出2)

}

class Dance extends music{

public Dance(){输出3}

public static void main(String args[]){

dance x = new dance();

}

}

//输出的顺序是1 2 3

父类与子类的构造函数问题

若不在类中定义构造函数,会默认生成一个无参的函数构造器,如果有了就不会。(构造器即构造函数,与类同名,在初始化的时候就被调用,,默认的构造函数是不带任何参数的)

class Art{

//等同于下面

class Art{

public Art(){

//

}

super关键字

Java用super表示超类的医生,当前类是从超类继承来的。

class Game{

int h;

Game(int i){//构造函数

System.out.println("this is a game!");

}

public static void printg(int d){//普通函数

System.out.println("12");

}

}

class ballGame extends Game{

ballGame(int i){

super(i);//调用父类的构造器,漏了这句就会报错,显示there is no default constructor available

System.out.println("ballGame is coming!");

super.h = 3;//访问父类的属性

}

}

super可以用于访问父类定义的属性,用于调用父类中的成员方法,super代表父类的内存空间。可以访问父类的父类

class Game{

int h;

Game(int i){//构造函数

System.out.println(i);//输出

System.out.println("第一层");

}

public static void printg(int d){//普通函数

System.out.println("1");

}

}

class ballGame extends Game{

ballGame(int i){

super(i);//调用父类的构造器

System.out.println("第二层");

super.h = 2;//访问父类的属性

}

}

public class jichengSuper extends ballGame{

jichengSuper(int b) {

super(b);//调用的是上面父类的构造函数,将输出3

int a = super.h ;//将第二层里的3赋值给a

System.out.println(a);//打印

}

public static void  main(String args[]){

new jichengSuper(3);//这里的3将代进去上面的构造函数jichengSuper中

System.out.print("最后一层");

}

}

/**

*output:

3

第一层

第二层

2

最后一层

*/

接口在实现的时候,在类中一定要实现接口的抽象方法

而继承不用,想要用哪个再用

others

可以有多个接口但是只能有一个继承。一般情况下,一个子类只能继承一个父类,这称为“单继承”,但有的情况下一个子类可以有多个不同的父类,这称为“多重继承”。在Java中,类的继承只能是单继承,而多重继承可以通过实现多个接口实现。

java继承的性质,浅谈Java三大特性之继承相关推荐

  1. java同名函数_浅谈Java 继承接口同名函数问题

    在Java中如果一个类同时继承接口A与B,并且这两个接口中具有同名方法,会怎么样? 动手做实验: interface A{ void fun(); } interface B{ void fun(); ...

  2. java 多线程同步_浅谈Java多线程(状态、同步等)

    Java多线程是Java程序员必须掌握的基本的知识点,这块知识点比较复杂,知识点也比较多,今天我们一一来聊下Java多线程,系统的整理下这部分内容. 一.Java中线程创建的三种方式: 1.通过继承T ...

  3. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  4. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  5. java bitset用途_浅谈Java BitSet使用场景和代码示例

    搜索热词 @H_502_0@一.什么是BitSet? @H_502_0@ 注:以下内容来自JDK API: @H_502_0@ BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个b ...

  6. java手动回收_浅谈java是如何做资源回收补救的

    学习java的过程,我们经常谈论一个对象的回收,尤其是资源类型,如果没有显示的关闭,对象就被回收了,说明出现了资源泄漏.java本身为了防止这种情况,做了一些担保的方式,确保可以让未关闭的资源合理回收 ...

  7. java e.getmessage() null,浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别...

    Exception e中e的getMessage()和toString()方法的区别: 示例代码1: public class TestInfo { private static String str ...

  8. java对象头markword_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  9. java 字符串转list_浅谈java 字符串,字符数组,list间的转化

    1.关于java.lang.string.split xxx.split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回. 2.字符串转字符数组 String str =" ...

  10. JAVA如何输出六角形,浅谈 Java 六边形架构

    原标题:浅谈 Java 六边形架构 dzone.com/articles/demonstration-of-hexagonal-architecture-in-java 六边形架构首先是一种设计模式, ...

最新文章

  1. php access 插入,如何使用PHP將附件插入Access數據庫?
  2. 是漏电,还是电磁辐射?
  3. 从运动脑机接口到情绪脑机接口:情绪脑机接口
  4. markdowndd
  5. setInterval
  6. Python遇到的问题(一)
  7. 【今日CV 计算机视觉论文速览】Thu, 28 Mar 2019
  8. win10下mount挂载文件 samba cifs
  9. OpenShift 4 - 配置本地Neuxs Registry并通过Pull Secret访问
  10. Spring(二)、注解IOC
  11. mssql数据库简繁体互转
  12. SmartView函数HypSetActiveConnection使用
  13. 游戏策划入门(6)——把模块变成现实
  14. 《老路用得上的商学课》31-35学习笔记
  15. 5g的八大关键指标_5g的八大关键指标_2019世界5G大会:这些你要先知道
  16. 1.1微信支付之现金红包 - Java 开发
  17. 华为发生工商变更,瞄准5G车联网大蛋糕!(附产业重要数据下载)
  18. xsy3320 string
  19. go语言gin项目创建
  20. 16进制转8进制(一般数据)

热门文章

  1. 学python将来做什么工作_学Python编程能做什么工作?从事什么岗位?——这些问题你知道吗?...
  2. xgboost 怎么读_【泰语单词】“祸从口出”泰语怎么表达?意想不到的简单
  3. Java基础:Collections
  4. Javascript:js借助jQuery和fileSave将表格存储到world
  5. 垃圾收集 java_Java 垃圾收集技术
  6. [论文评析] ArXiv,2021, Focal Self Attention技术分析
  7. 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
  8. Python多进程实现原理
  9. 聊聊我怎么系统学习Linux技能并快速提高的
  10. 复制集结合分片架构搭建以及监控