java基础 类 & 继承】的更多相关文章

类 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中可以有多个类,但是最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的变量来说会默认初始化为0(boo…
前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载和构造方法的重载 方法的重载 在一个类中可以有多个方法具有相同的名字,但是这些方法的参数个数不同,或参数类型不同,即为方法的重载. class Demo{ // one void dashu(String name){ System.out.println(name); } // two void…
前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class Demo{ Stuo stuo = new Stuo(); } 成员变量的特殊情况 成员函数 class Stu{ void show(){ System.out.println("Stu show"); } } class Stue extends Stu{ void show(){…
java一个类 继承HttpServlet 和实现Servlet区别 servlet 是一个接口,如果实现这个接口,那么就必须实现接口里面定义的所有方法 而HttpServlet实现了servlet接口,并把servlet接口中的方法实现了继承Httpservelt实际上也就实现了servlet接口,但是我们没必要再去实现servlet中定义的生命周期方法,因为在httpservlet中已经有了默认实现,并且这些默认实现也挺规范和实用doget和dopost是执行用户请求的终点,也就是是,安装s…
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD的函数,单独做一个添加DVD的函数,如果还要往这个媒体库里添加其他的媒体类,还要再创建另一个添加函数.我们说这样的代码不具备可扩展性.另外,CD和DVD有很多相似之处,它们的成员变量里都有标题,播放时长,评论,等等,我们称这样的程序存在大量的代码复制,代码复制是代码不良的表现.所以我们可以创建一个它…
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 继承(inheritance)是面向对象的重要概念.继承是除组合(composition)之外,提高代码重复可用性(reusibility)的另一种重要方式.我们在组合(composition)中看到,组合是重复调用对象的功能接口.我们将看到,继承可以重复利用已有的类的定义. 类的继承 我们之前定义类的时候,都是从头开始,详细的定义该类的每一个成员.比如下面的Human类: cl…
本章学习要点:       1.  了解Java继承特性;       2.  掌握继承实现方法;       3.  掌握override规则: 一.类继承特性       1.  继承定义:使用己存在的类作为新类定义的基础,新类定义中可以增加新的数据或新的方法. 基础类我们称之为父类或基类,新派生的类为子类或派生类:       2.  继承目的:增强类之间的复用性,不用重复操轮子.从而使子类具有父类的功能, 无须再次实现,通常父类作为对多个子类共性的抽象,因而将共性内容(属性和行为)作为父…
继承(inheritance)是面向对象的重要概念.继承是除组合(composition)之外,提高代码重复可用性(reusibility)的另一种重要方式.组合是重复调用对象的功能接口.继承可以重复利用已有的类的定义.   类的继承 我们之前定义类的时候,都是从头开始,详细的定义该类的每一个成员.比如下面的Human类: class Human{    public int getHeight(){        return this.height;    }    public void…
一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制,在数据封装后,其他的类成员想要访问当前类成员,就必须要有足够的权限才能访问:这样做的目的就是我可以随意修改不想让其他类成员没有权限访问的数据,只要约定好相关的协议,不影响其他类成员访问即可: 二 权限修饰词介绍 public 意指公有的意思,其修饰的成员权限最低,表示任何成员都可以访问:注意点是一…
1. 继承 1.1 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系.例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部员工和维护部员工继承自员工,同理,JavaEE工程师和Android工程师继承自研发部员工,而维网络维护工程师和硬件维护工程师继承自维护部员工.这些员工之间会形成一个继承体系,具体如下图所示. 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出…
本章学习要点:       1.  Java封装特性;       2.  掌握类的定义:       3.  掌握类的调用方法; 一.封装特性        Java 纯面向对象语言,面向对象语言遵循有三种基本特性,封装,继承,多态:所有的特性都围绕着类展开发,类是对现实世界中事物的抽象描述.本章先学习封装特性        1.  类  - 将现实事物(人)或虚拟事件(银行账户)进行抽象,在Java通过类来描述,事物的属性和行为:  如:             a. 人 - 现实中的具体事…
一.前言 在上一篇C++基础博文中讨论了C++最基本的代码重用特性——类继承,派生类可以在继承基类元素的同时,添加新的成员和方法.但是没有考虑一种情况:派生类继承下来的方法的实现细节并不一定适合派生类的需求,此时派生类需要重载集成方法. 二.重载方法及虚函数     我们讨论<C++ Primer Plus>中的如下场景:银行记录客户信息,包括客户姓名.当前余额.客户这一类别当然能够创建客户对象.存款.取款以及显示信息.银行需要特殊记录具有透支权限的客户,因此这一类别的客户要额外记录透支上限.…
知识点1.继承作用:提高代码的重用性,继承之后子类可以继承父类中的属性和方法减少重复代码条件:子类和父类要满足is a的逻辑关系,才能使用继承.如:苹果 is a水果语法:使用extends 连接子类和父类.子类 extends 父类Java是单继承,一个类只能继承一个父类.子类不能继承父类私有的属性,但是可以继承父类属性的GET/SET方法super关键字:代表父类对象,可以调用父类的属性,父类的方法,子类对象在创建的时候,默认调用父类的无参构造方法. 二.abstract关键字 抽象abst…
虽然说java中的面向对象的概念不多,但是具体的细节还是值得大家学习研究,java中的继承实际上就是子类拥有父类所有的内容(除私有信息外),并对其进行扩展.下面是我的笔记,主要包含以下一些内容点: 构造方法 重写和重载 final关键字 new的背后(内存分析) 理解方法调用 一.构造方法     正如我们所知道的,构造方法的方法名与类名相同,主要的作用是实现对实例对象的初始化工作,实际上每个子类的构造方法中的第一行默认是调用了父类的构造函数,而父类继续向上调用直至Object类,然后返回. /…
1. interface的引入 使用interface来定义某一类通用操作,而又不强制规定其实现,对于Java的流行真是太重要了. 以JDBC举例.在Java之前,C++与数据库建立连接,常用的一个技术是OLEDB.这个技术我刚才搜索了一下,已经找不到太有效的内容了.我只记得开发比较复杂,如果我的应用要使用不同的数据库,就得为不同的数据库编写适配的代码.这是一件很头疼的事情. JDBC是怎么做的呢?java 提供了一个名为 java sql 的包,大家可以去看一下源码,这个包里的Statemen…
类 Object 类(java.lang.Object)是所有 Java 类的直接或间接父类. 成员方法及变长参数 方法定义: [public | protected | private] [static] [final] [abstract] [native] [synchronized] 返回类型 方法名([参数列表]) [throws exceptionList] { // 方法体 } static:表示这是一个类方法(静态方法),不需实例化即可调用 final:表示这是一个终结方法,不可…
继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我们编写的类没有手动指定父类,系统会自动继承objet(Java继承体系中最顶层的类)为父类 关键字: 成员方法关键字区分: this.方法名()当前类方法 super.方法名()父类方法 this.当前类的成员变量 super.父类成员变量 final修饰变量: 基本数据类型:其值不能被改变 引用数…
一. static关键字 使用static关键字修饰成员变量表示静态的含义,此时成员变量由对象层级提升为类层级,整个类共享一份静态成员变量,该成员变量随着类的加载准备就绪,与是否创建对象无关 使用static修饰属性:静态变量(或类变量) 静态变量随着类的加载而加载,可以通过类名.静态变量的方式进行调用 静态变量的加载早于对象的创建 类只会加载一次,静态变量在内存中只有一份,在方法区的静态域中 使用static关键字修饰类方法:静态方法 静态方法中只能代用静态方法的属性或方法 非静态方法中,可以…
对静态变量的操作存在继承时还是有一些模糊,做了个简单的测试: class Test { private String mName; public Test(String name) { setName(name); } public void setName(String name) { mName = name; } public String getName() { System.out.println(mName); return mName; } } class A { protecte…
一.前言  好吧,本系列博客已经变成了<C++ Primer Plus>的读书笔记,尴尬.在使用C语言时,多通过添加库函数的方式实现代码重用,但有一个弊端就是原来写好的代码并不完全适用于现在的情况.OOP设计思想中类的继承相比来说更为灵活,可以添加新的数据成员和方法,也能修改继承下来方法的实现细节,同时还保留了原有的代码.开始进入正题. 二.类继承示例  场景如下:现需要记录乒乓球运动成员的信息,包括姓名和有无空余桌台.其中有一部分成员参加过比赛,需要将这一部分单独提出并记录他们在比赛中的比分…
21.编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak() 方法,在speak方法中输出“咿咿呀呀......”的信息. (2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法 中输出“小样的,不错嘛!会说话了!”的信息. (3)在People类中新增方法void think(),在thi…
什么是继承 把一些类的具有共性的东西剥离出来形成一个新的类,然后各个其他类保留自己独有的特性,并用关键字extends继承这个剥离出来的新的类,可以最终达到各类原始相同效果,但是在每个类中,单用一个“extends 新类” 就可以减少新类里差不多相同量级的代码量. 继承的格式 class 类1 extends 新类{} 其中新类就是剥离出的有共同特性的类. 继承的适用场景 存在“is a”的关系时,例如猫is a 动物,狗is a 动物. 继承的特点 Java中类只支持单继承 Java中可以多层…
1.子类 1) 定义子类 //假设父类(也叫做超类)是Employee类,用extends来表示继承 public class Manager extends Employee{ //域和方法 private double bonus; //子类的域 ... private void setBonus(double bonus){ //子类的方法 this.bonus = bonus; } } //子类继承了父类的非private的域和方法,而父类对象不能使用子类具有域和方法 //通常把通用的方…
只要是从事Java语言有关的开发工作,在面试中难念会被问到这几个东西. 博主学习java有两年多了,算是浅显的知道一些,抄写了一些解释分享一下. 1.什么是面向对象?(面对女朋友) 面向对象(Objec Oriented,OO)是一种软件开发方法. 面向对象是专指在程序设计中采用封装.继承.多态等设计方法. 一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类.继承,帮助人们实现对现实世界的抽象与数字建模. 2.继承 继承是指一个对象直接使用另一对象的属性和方…
在上节博客中曾提到过类的继承,这篇文章主要是介绍类的继承.构造函数以及静态代码块的执行顺序. 首先接着分析在黑马基础测试中的一个关于继承的题目,题目描述如下: 声明类Person,包含2个成员变量:name.age.定义函数sayHello(),调用时输出:我叫***,今年***岁了.声明类Chinese继承Person. 这是一个很基础的题,第一步要构建一个父类:Person,Person包含name.age属性,已经一个成员方法sayHollo().具体实现如下: class Person{…
上篇我们介绍了java中的构造方法,了解了关键字this和super在继承中所起到的作用,this可以显式调用重载的构造方法,super可以显式的调用父类中的任意可见方法.了解方法重载和重写的区别,知道了关键字final的作用,本篇将以一段代码介绍实例化对象时内存的状态.       如果你能看懂以下代码,那本篇你就不用浪费时间了. /*这是父类*/ public class Base { public Base(){ print(); } public void print(){ } } //…
抽象类: 是用来捕捉子类的通用特性的,至少包含一个抽象方法,该抽象方法必须在子类中实现,由于抽象类没有抽象方法的具体实现,因此不能对抽象类进行实例化. 接口: 定义了一组方法,是抽象方法的集合,但是接口都没有方法的实现,也就是说这些方法都是抽象方法. 参数 抽象类 接口 默认的方法实现 它可以有默认的方法实现 接口是完全抽象的,它根本不存在方法的实现 实现 extends 子类需要重写抽象类中的所有抽象方法 implements   子类需要实现接口中的所有方法 构造器 可以有 没有 与正常ja…
继承的格式(Java类) Java中继承的注意事项 继承的好处与弊端 继承中成员变量的访问特点(对public形式的变量来说) 继承中成员函数的访问特点 this和super: 继承中构造方法的访问特点 super内存图 1.进入main函数,创建main函数栈 2.main栈区创建Zi类型的z变量赋予堆内存地址.堆内存new Zi():先创建一个int类型的age变量,值为20 3.进入构造函数,创建Zi函数栈空间.默认先执行父类无参构造函数:执行时会创建一个super区,在这个区里创建一个i…
1.单独的父类测试 Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分, 它们的执行顺序相对来说比较简单,用程序也很容易验证. 比如新建一个测试父类. public class FatherTest { private String name; FatherTest(){ System.out.println("--父类的无参构造函数--"); } FatherTest(String name){ this.name=name…
1.子类从父类继承了什么? 子类拥有父类非private的属性,方法. 2.子类可以操作父类的非private属性吗? 子类不能继承父类的私有属性,但是如果父类中的非private方法影响到了私有属性,那么私有属性是可以被子类使用的. 继承是为了更好的提高代码的重用性,封装则保护了代码的不可见部分.在编写代码的过程中,我们想提高代码的重用性,也不希望类中的某些域被随意修改.那么这样的继承机制就很合理了.另外就生活中的例子来说,Java官方文档的解释也很契合.比如,我们不可能完全继承父母的一切(如…