浅谈Java三大特性之继承

前言

简单用伪代码去介绍一些

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

others

前言

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

原文地址:https://www.cnblogs.com/yhycoder/p/12169161.html

时间: 2024-08-04 14:06:39

浅谈Java三大特性之继承的相关文章

浅谈Java三大特性

Java三大特性想必大家都不陌生:封装.继承以及多态.很多刚接触Java的小伙伴都会想,它们到底有什么了不得之处,又赋予Java这门编程语言什么魔力呢?今天我们来探讨一下吧~~ 首先,名词解释: 封装,即是隐藏一切可隐藏的东西,对外界只提供最简单的编程接口.比如,在一个类中,把数据和操作方法绑定起来,对数据的访问只能通过这些 get/set 方法(又称为接口)来实现. 为什么封装?比如,我是一个厨师,我有一本食谱,你今天想吃肉,让我帮忙露两手.具体加了多少盐,放了多少醋你不需要关心(隐藏具体实现

浅谈Java三大特性之多态

目录 一.前言 二.发生的条件 三.多态包含(或者说体现在)两个方面: 四.示例 感谢阅读 一.前言 这篇讲下三大特性之一的多态,可以通俗得去理解,多种形态,多种姿态... 那么在面向对象的程序设计中,多态是 指什么? Java引用变量有两个类型:一个是编译类型,一个是运行时类型.编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定.如果编译类型和运行时类型不一致,就可能出现所谓的多态(Polymorphism) "多形性"(Polymorphism)从另一个角

java三大特性之一继承

继承 众所周知,java是跨平台,健壮性的语言 他拥有封装,继承,多态三大特性 继承: 首先,子类继承父类之后,子类可以拥有父类的的方法,构造方法不能被继承 使用场景: 如果我们定义好几个类,每个类都拥有相同的方法或者参数, 然后我们就可以抽取相同的内容为父类,然后子类继承父类的参数或者方法,极大的提高了 代码的复用性,减少了我们的工作量 范例: public class Demo { public static void main(String[] args) { teacher t = ne

浅谈Java三大框架与应用

前言:对于一个程序员来说,尤其是在java web端开发的程序员,三大框架:Struts+Hibernate+Spring是必须要掌握熟透的,因此,下面谈谈java三大框架的基本概念和原理. JAVA三大框架 一.Spring Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯.Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器.然而,这仅仅是

2.Java三大特性之继承

在<Think in Java>中有这样一句话:复用代码是java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复用代码并对其加以改变是不够的,他还必须能够做更多的事情.复用代码是我们一直所追求的,而继承则是复用代码的一种方式. 继承的定义:继承是用已有的类(称之为父类或超类)作为基础建立新类(子类),子类可以定义新的功能或增加新的数据,子类拥有父类的全部定义.使用继承我们可以很方便的复用已有的代码.继承所描述的是"is-a"的关系,有两个对象猫.动物,这两个

java语言有哪些优势?浅谈java三大框架

对于初学者来说,这三大框架Struts+Hibernate+Spring被赋予了太多神秘的色彩,似乎它们是重中之重的知识!但是对于拥有多年java开发经验的专业技术人员来说,对于那些Java牛人来说,却对这三大框架不太感冒!那么这三大框架到底重不重要呢? 现在很多企业都在用这三大框架,所以面试时面试官总会问三大框架的问题.但不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系.对于这些企业来说这三大框架既可以说很重要,也可

Java三大特性之继承

1.继承概述 package cn; publicclass Student { private String name; privateintage; public String getName() { returnname; } publicvoid setName(String name) { this.name = name; } publicint getAge() { returnage; } publicvoid setAge(intage) { this.age = age; }

【转】java提高篇(二)-----理解java的三大特性之继承

[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大

java随笔:三大特性之继承

Java三大特性之继承 一.介绍 笔记重点:构造器.protected关键字(这个自行查阅).向上转型.private关键字(继承非常重要的要点)  复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是"复用代码",尽可能的复用代码使我们程序员一直在追求的. 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继