linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux基础建设 >

浅谈Java三大特性之继承

时间:2020-02-06  来源:未知  作者:admin666

前言

类的继承性是面向对象语言的基本特性,多态性前提是继承性。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中,类的继承只能是单继承,而多重继承可以通过实现多个接口实现。

linux
上一篇:没有了
友情链接
  • Mozilla发布Firefox 67.0.4,修复沙箱逃逸漏洞
  • 蚂蚁金服正式成为CNCF云原生计算基金会黄金会员
  • Firefox 68将采用Microsoft BITS安装更新
  • OpenSSH增加对存储在RAM中的私钥的保护
  • 谷歌想实现自己的curl,为什么?
  • Raspberry Pi 4发布:更快的CPU、更大的内存
  • Firefox的UA将移除CPU架构信息
  • Ubuntu放弃支持32位应用程序实属乌龙,Steam会否重回Ubuntu怀抱
  • Qt 5.13稳定版发布:引入glTF 2.0、改进Wayland以及支持Lottie动
  • 红帽企业Linux 7现已内置Redis 5最新版
  • Slack进入微软内部禁用服务清单,GitHub也在其列?
  • 安全的全新编程语言V发布首个可用版本
  • Windows Terminal已上架,快尝鲜
  • 阿里巴巴微服务开源生态报告No.1
  • 面世两年,Google地球将支持所有基于Chromium的浏览器
  • 推进企业容器化持续创新,Rancher ECIC千人盛典完美收官
  • CentOS 8.0最新构建状态公布,或于数周后发布
  • Debian移植RISC
  • 微软拆分操作系统的计划初现雏形
  • Oracle发布基于VS Code的开发者工具,轻松使用Oracle数据库
  • Ubuntu 19.10停止支持32位的x86架构
  • 微软为Windows Terminal推出全新logo
  • 联想ThinkPad P系列笔记本预装Ubuntu系统
  • 微软发布适用于Win7/8的Microsoft Edge预览版
  • 启智平台发布联邦学习开源数据协作项目OpenI纵横
  • 经过六个多月的延迟,微软终于推出Hyper
  • ZFS On Linux 0.8.1 发布,Python可移植性工作
  • DragonFly BSD 5.6.0 发布,HAMMER2状态良好
  • Linux Kernel 5.2
  • CentOS 8.0 看起来还需要几周的时间
  • 百度网盘Linux版正式发布
  • PCIe 6.0宣布:带宽翻倍 狂飙至256GB/s
  • PHP 7.4 Alpha 发布,FFI扩展,预加载Opcache以获得更好的性能
  • Canonical将在未来的Ubuntu版本中放弃对32位架构的支持
  • Scala 2.13 发布,改进的编译器性能
  • 微软的GitHub收购了Pull Panda,并且使所有订阅完全免费
  • Windows Subsystem for Linux 2 (WSL 2)现在适用于Windows 10用
  • Debian 10 “Buster”的RISC
  • MariaDB宣布发布MariaDB Enterprise Server 10.4
  • DXVK 1.2.2 发布,带来微小的CPU开销优化
  • DragonFlyBSD 5.6 RC1 发布,VM优化,默认为HAMMER2
  • PrimeNG 8.0.0 发布,支持Angular 8,FocusTrap等
  • GIMP 2.10.12 发布,一些有用的改进
  • 清华大学Anaconda 镜像服务即将恢复
  • Debian GNU/Linux 10 “Buster” 操作系统将于2019年7月6日发布
  • 时时彩论坛
  • 五星体育斯诺克
  • 北单比分直播
  • 河北11选5走势图
  • 福建体彩36选7开奖结果
  • 九龙图库下载