继承:在Java中使用extends关键字来实现类的继承  ,extends意思就是派生,所以子类也叫派生类,继承的主要目的是扩展类的内容

操作格式: class A{}; class B extends A{};

子类B可以继承父类A中的公用方法,也可以扩展自己的方法

示例代码:

package OOP2;

class Person{

private String name;

private int age;

public void setName(String name){

this.name = name;

}

public void setAge(int age){

this.age = age;

}

public String getName(){

return this.name;

}

public int getAge(){

return this.age;

}

};

class Student extends Person{

private String school;

public void setSchool(String school){

this.school = school;

}

public String getSchool(){

return this.school;

}

};

public class extendsOne {

public static void main(String[] args) {

// TODO Auto-generated method stub

Student stu = new Student();

stu.setName("李帅");

stu.setAge(20);

stu.setSchool("霍格沃茨");

System.out.println("名字:"+stu.getName()+","+"年龄"+stu.getAge()+","+"学校:"+stu.getSchool());

}

}

继承的限制:Java中只允许单继承,意思就是一个子类只能继承一个父类,一个孩子只能有一个亲爸

但是可以进行多层继承,意思就是父类还可以有父类

访问限制:在父类中的私有成员不能被子类访问,所以通过setter 和getter方法供子类访问父类中的非私有方法。

在Java机制中,首先执行父类中的内容,再执行子类中的内容,即没有父亲就没有孩子,对于子类的构造方法中,隐含了super();,所以有时也将父类称为超类。

方法的覆写:在继承的关系中也存在方法的覆写,即子类中覆写父类中的方法。但是被子类覆写的方法不能拥有比父类更低的访问权限。 目前接触的权限有:private

如果子类中的方法权限实在低于父类中的权限,只能通过super的方法来实现,实例如下:

class Person{// 定义父类

void print(){// 默认的访问权限

System.out.println("Person --> void print()。") ;

}

};

class Student extends Person{// 定义继承关系

public void print(){

super.print() ;// 访问父类中被子类覆写过的方法

System.out.println("Student --> void print()。") ;

}

};

public class OverrideDemo03{

public static void main(String args[]){

Student s = new Student() ;

s.print() ;

}

};

研究此问题意义不大。

方法重载和覆写的区别:

super关键字

super关键字的作用是在子类中调用父类的指定操作,例如:调用属性、方法、构造等。

但在子类中要调用父类的有参构造,必须要声明参数,super(参数,参数)

继承的应用:

实例:定义一个整形数组类,要求包含构造方法,增加数据及输出数据成员方法,并利用数组实现动态内存分配,在此基础上定义出以下子类:

A:排序类,实现数组的排序

B:数组反转类,实现数据的反向存放

代码:

class Array{// 表示数组

private int temp[] ;// 整型数组

private int foot ;// 定义添加位置

public Array(int len){

if(len>0){

this.temp = new int[len] ;

}else{

this.temp = new int[1] ;// 最少维持空间是1个

}

}

public boolean add(int i){// 增加元素

if(this.foot

this.temp[foot] = i ;// 增加元素

this.foot ++ ;// 修改脚标

return true ;

}else{

return false ;

}

}

public int[] getArray(){

return this.temp ;

}

};

class SortArray extends Array{// 排序类

public SortArray(int len){

super(len) ;

}

public int[] getArray(){// 覆写方法

java.util.Arrays.sort(super.getArray()) ;// 排序操作

return super.getArray() ;

}

};

class ReverseArray extends Array{// 反转操作类

public ReverseArray(int len){

super(len) ;

}

public int[] getArray() {

int t[] = new int[super.getArray().length] ;// 开辟一个新的数组

int count = t.length - 1 ;

for(int x=0 ;x

t[count] = super.getArray()[x] ;// 数组反转

count-- ;

}

return t ;

}

};

public class ArrayDemo{

public static void main(String args[]){

// ReverseArray a = null ;// 声明反转类对象

// a = new ReverseArray(5) ;// 开辟5个空间大小

SortArray a = null ;

a = new SortArray(5) ;

System.out.print(a.add(23) + "\t") ;

System.out.print(a.add(21) + "\t") ;

System.out.print(a.add(2) + "\t") ;

System.out.print(a.add(42) + "\t") ;

System.out.print(a.add(5) + "\t") ;

System.out.print(a.add(6) + "\t") ;

print(a.getArray()) ;

}

public static void print(int i[]){// 输出数组内容

for(int x=0;x

System.out.print(i[x] + "、") ;

}

}

};

java继承总结_JAVA笔记:Java中的继承总结相关推荐

  1. java类描述_java笔记2:Java语言中的类和对象的描述

    在Java 语言中,除8 个基本数据类型值之外, 一切都是对象,而对象就是面向对象程序设计的中心. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还 ...

  2. java继承层次结构,在状态模式中实现继承层次结构 - java

    我有一个与此非常相似的设计: 这里的NewOrder,Registered&Granted都有通用方法AddOrderline()和Cancel(),因此将这两种方法重构为父类很容易. 当我要 ...

  3. 实战java高并发程序设计-笔记进行中

    <JAVA并发编程实践>:出书时间太早,内容比较散,专业术语翻译较早和现在有差异 <Java并发编程的艺术>:手绘图较多文字内容较少,主要讲解并发实现的底层原理和面临的问题,底 ...

  4. java 封装 英文_java类的封装、继承、多态

    一.封装(encapsulation) 封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系.封装的特 ...

  5. java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 视频来自:优酷 在java中添加图片做动画效果,怎么一闪一闪的运动啊?怎样才能让它不闪的连续运动呢? 下面是代码,代码项目project里有两个类,一个是 ...

  6. java 图片阴影_Java 为 PPT 中的图形添加阴影效果

    在PowerPoint文档中,给图形添加阴影效果能增强图形的立体感,使其贴近现实效果,提升文档的美观度. 本文将展示如何使用Free Spire.Presentation for Java为PPT中的 ...

  7. eclipse java web乱码_JAVA and JAVA WEB with TOMCAT and ECLIPSE 学习过程中遇到的字符乱码问题及解决方法汇总(随时补充)...

    JAVA语言具有跨平台,unicode字符集编码的特点. 但是在开发过程中处理数据时涉及到的字符编码问题零零散散,尤其是处理中文字符时一不留神就可能出现一堆奇奇怪怪的符号,俗称乱码. 对于乱码,究其原 ...

  8. java 配置文件加密_Java在配置文件中加密密码?

    小编典典 一种简单的方法是在Java中使用基于密码的加密.这使你可以使用密码来加密和解密文本. 这基本上意味着初始化一个javax.crypto.Cipherwith算法"AES/CBC/P ...

  9. java虚拟函数_java实现多态中的虚函数相关概念

    本文转载自参考博客 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑 ...

最新文章

  1. 关于MEET大会直播抽奖后续红包发放的说明
  2. java1002java,疯狂java学习笔记1002---抽象类及接口
  3. 推荐一款软件(作业)
  4. 【轻量级网络】MobileNet-v2详解
  5. Java经典实例:在正则表达式中控制大小写
  6. 蓝桥杯——练习系统登录
  7. oracle asm结构,深入了解Oracle ASM
  8. Youtube CC字幕是什么,Caption和Subtitle的解释
  9. USB转串口那些事儿—USB转串口工作原理及应用
  10. echarts常见图形-饼状图(四)
  11. LabVIEW编程LabVIEW控制THM1176三维磁场强度测试仪例程与相关资料
  12. 知乎live-李笑来-人人都能用英语-笔记
  13. 计算机专业算理算工,计算机在高考时是算文还是算理啊
  14. MAC地址和IP地址说明
  15. 实践数据湖iceberg 第十四课 元数据合并(解决元数据随时间增加而元数据膨胀的问题)
  16. (DP)codeforces - 710E Generate a String
  17. 十大SEO排名因素:如何提高百度排名?干货
  18. 流形(Manifold)学习的理解
  19. 设计模式之依赖倒置设计原则
  20. Unity 之 接入腾讯Bugly简述【Android端】

热门文章

  1. 2019年技术盘点容器篇(二):听腾讯云讲讲踏入成熟期的容器技术 | 程序员硬核评测...
  2. 开源神器,无需一行代码就能搞定机器学习,不会数学也能上手
  3. matlab cell转数组_MATLAB批量修改文件名
  4. python的整数类型_Python int 数字整型类型 定义int()范围大小转换
  5. 网速dns怎么调快_怎么设置dns?教你快速解决网速慢的问题
  6. Springboot2 Swagger3 集成
  7. 通过windows客户端访问
  8. flowable实战(一)flowable与spring boot集成
  9. SonarQube代码质量管理平台C++插件sonar-cxx的安装
  10. JavaScript从入门到放弃 - ES6中的对象和类