java继承总结_JAVA笔记:Java中的继承总结
继承:在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中的继承总结相关推荐
- java类描述_java笔记2:Java语言中的类和对象的描述
在Java 语言中,除8 个基本数据类型值之外, 一切都是对象,而对象就是面向对象程序设计的中心. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还 ...
- java继承层次结构,在状态模式中实现继承层次结构 - java
我有一个与此非常相似的设计: 这里的NewOrder,Registered&Granted都有通用方法AddOrderline()和Cancel(),因此将这两种方法重构为父类很容易. 当我要 ...
- 实战java高并发程序设计-笔记进行中
<JAVA并发编程实践>:出书时间太早,内容比较散,专业术语翻译较早和现在有差异 <Java并发编程的艺术>:手绘图较多文字内容较少,主要讲解并发实现的底层原理和面临的问题,底 ...
- java 封装 英文_java类的封装、继承、多态
一.封装(encapsulation) 封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系.封装的特 ...
- java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 视频来自:优酷 在java中添加图片做动画效果,怎么一闪一闪的运动啊?怎样才能让它不闪的连续运动呢? 下面是代码,代码项目project里有两个类,一个是 ...
- java 图片阴影_Java 为 PPT 中的图形添加阴影效果
在PowerPoint文档中,给图形添加阴影效果能增强图形的立体感,使其贴近现实效果,提升文档的美观度. 本文将展示如何使用Free Spire.Presentation for Java为PPT中的 ...
- eclipse java web乱码_JAVA and JAVA WEB with TOMCAT and ECLIPSE 学习过程中遇到的字符乱码问题及解决方法汇总(随时补充)...
JAVA语言具有跨平台,unicode字符集编码的特点. 但是在开发过程中处理数据时涉及到的字符编码问题零零散散,尤其是处理中文字符时一不留神就可能出现一堆奇奇怪怪的符号,俗称乱码. 对于乱码,究其原 ...
- java 配置文件加密_Java在配置文件中加密密码?
小编典典 一种简单的方法是在Java中使用基于密码的加密.这使你可以使用密码来加密和解密文本. 这基本上意味着初始化一个javax.crypto.Cipherwith算法"AES/CBC/P ...
- java虚拟函数_java实现多态中的虚函数相关概念
本文转载自参考博客 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑 ...
最新文章
- 关于MEET大会直播抽奖后续红包发放的说明
- java1002java,疯狂java学习笔记1002---抽象类及接口
- 推荐一款软件(作业)
- 【轻量级网络】MobileNet-v2详解
- Java经典实例:在正则表达式中控制大小写
- 蓝桥杯——练习系统登录
- oracle asm结构,深入了解Oracle ASM
- Youtube CC字幕是什么,Caption和Subtitle的解释
- USB转串口那些事儿—USB转串口工作原理及应用
- echarts常见图形-饼状图(四)
- LabVIEW编程LabVIEW控制THM1176三维磁场强度测试仪例程与相关资料
- 知乎live-李笑来-人人都能用英语-笔记
- 计算机专业算理算工,计算机在高考时是算文还是算理啊
- MAC地址和IP地址说明
- 实践数据湖iceberg 第十四课 元数据合并(解决元数据随时间增加而元数据膨胀的问题)
- (DP)codeforces - 710E Generate a String
- 十大SEO排名因素:如何提高百度排名?干货
- 流形(Manifold)学习的理解
- 设计模式之依赖倒置设计原则
- Unity 之 接入腾讯Bugly简述【Android端】
热门文章
- 2019年技术盘点容器篇(二):听腾讯云讲讲踏入成熟期的容器技术 | 程序员硬核评测...
- 开源神器,无需一行代码就能搞定机器学习,不会数学也能上手
- matlab cell转数组_MATLAB批量修改文件名
- python的整数类型_Python int 数字整型类型 定义int()范围大小转换
- 网速dns怎么调快_怎么设置dns?教你快速解决网速慢的问题
- Springboot2 Swagger3 集成
- 通过windows客户端访问
- flowable实战(一)flowable与spring boot集成
- SonarQube代码质量管理平台C++插件sonar-cxx的安装
- JavaScript从入门到放弃 - ES6中的对象和类