1.制作一个工具类的文档

javadoc -d 目录 -author -version   arrayTool.java

实例:

class arrayDemo
{
public static void main(String[] args){ int[] arr = {23,34,54,65,57,7}; //遍历数组
arrayTool.printArray(arr);
//获取数组中的最大值
int max = arrayTool.getMax(arr);
System.out.println("数组中的最大值为"+max);
//获取数组中元素的索引
int index = arrayTool.getIndex(arr,57);
System.out.println("57在数组中的索引位置为"+index); } }
生成工具类的文档类型
javac -d doc -author -version arrayTool.java
/**
*数组操作工具类
*@author greymouster
*@version v1.0
*/
public class arrayTool
{
/**
*私有的构造方法 禁止外部实例化对象
*/
private arrayTool(){} /**
*遍历数组方法 遍历后为[元素1,元素2,元素3,....]
*@param arr 要遍历的数组
*/
public static void printArray(int[] arr){
System.out.print("[");
for(int x=0;x<arr.length;x++){
if(x == arr.length-1){
System.out.println(arr[x]+"]");
}else{
System.out.print(arr[x]+",");
}
}
} /**
*获取数组中最大值的方法
*@param arr 数组
*@return 返回数组中的最大值
*/
public static int getMax(int[] arr){
//加入数组的元素为最大值
int max = arr[0]; for(int x=1;x<arr.length;x++){
if(max<arr[x]){
max = arr[x];
}
} return max;
} /**
*获取数组中值的索引
*@param arr 数组 value 数组中的值
*@return index 返回数组中值所在的索引 如果不存在返回-1.
*/
public static int getIndex(int[] arr,int value){ int index = -1; for(int x=0;x<arr.length;x++){
if(arr[x] == value){
index = x;
}
} return index;
} }

2.java中不支持多继承,支持多层继承

class A extends B,C{}  //错误

//以下是多层继承关系
class A { public static void method(){
System.out.println("ceshi");
}
} class B extends A{ public static void show(){
System.out.print("ceshi1");
}
} class C extends B{
public static void main(Stirng[] args){
B b = new B();
b.show();
b.method();
}
}

子类不能继承父类的构造方法,但是可以通过supper关键字去访问父类构造方法

子类中所有的构造方法默认都会访问父类中无参数的构造方法

因为子类会继承父类中的数据,可能还会使用父类的数据

所以,子类初始化之前,一定要先完成父类数据的初始化

注意:每个构造方法的第一条语句默认都是:super()

super 和this的区别:

/*
问题是:
我不仅仅要输出局部范围的num,还要输出本类成员范围的num。怎么办呢?
我还想要输出父类成员范围的num。怎么办呢?
如果有一个东西和this相似,但是可以直接访问父类的数据就好了。
恭喜你,这个关键字是存在的:super。 this和super的区别?
分别是什么呢?
this代表本类对应的引用。
super代表父类存储空间的标识(可以理解为父类引用,可以操作父类的成员) 怎么用呢?
A:调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
B:调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类的构造方法
C:调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
*/
class Father {
public int num = 10;
} class Son extends Father {
public int num = 20; public void show() {
int num = 30;
System.out.println(num); // 30
System.out.println(this.num); //20
System.out.println(super.num); //10
}
} class ExtendsDemo5 {
public static void main(String[] args) {
Son s = new Son();
s.show();
}
}

通过super()方法去访问父类中的带参构造方法

class  Father{

     public  Father(String name){
System.out.println("带参构造方法");
}
} class Son extends Father{
public Son(){
super("随便给");
System.out.println("无参构造方法");
} public Son(String name){
//super("随便给");
this();
System.out.println("有参构造方法");
}
} class ExtendsDemo{ public static void main(String[] args){
Son s = new Son(); System.out.println("--------------");
Son s2 = new Son("daican");
}
}

方法重写和方法重载

方法重写:子类中出现了和父类中方法声明一模一样的方法

方法重载:本类中出现了方法名一样,参数列表不同的方法,与返回值无关

/*
猫狗案例讲解 先找到具体的事物,然后发现具体的事物有共性,才提取出一个父类。 猫:
成员变量:姓名,年龄,颜色
构造方法:无参,带参
成员方法:
getXxx()/setXxx()
eat()
palyGame()
狗:
成员变量:姓名,年龄,颜色
构造方法:无参,带参
成员方法:
getXxx()/setXxx()
eat()
lookDoor() 共性:
成员变量:姓名,年龄,颜色
构造方法:无参,带参
成员方法:
getXxx()/setXxx()
eat() 把共性定义到一个类中,这个类的名字叫:动物。
动物类:
成员变量:姓名,年龄,颜色
构造方法:无参,带参
成员方法:
getXxx()/setXxx()
eat() 猫:
构造方法:无参,带参
成员方法:palyGame()
狗:
构造方法:无参,带参
成员方法:lookDoor()
*/
//定义动物类
class Animal {
//姓名
private String name;
//年龄
private int age;
//颜色
private String color; public Animal() {} public Animal(String name,int age,String color) {
this.name = name;
this.age = age;
this.color = color;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getColor() {
return color;
} public void setColor(String color) {
this.color = color;
} public void eat() {
System.out.println("不要睡了,该吃饭了");
}
} //定义猫类
class Cat extends Animal {
public Cat() {} public Cat(String name,int age,String color) {
super(name,age,color);
} public void playGame() {
System.out.println("猫玩英雄联盟");
}
} //定义狗类
class Dog extends Animal {
public Dog() {} public Dog(String name,int age,String color) {
super(name,age,color);
} public void lookDoor() {
System.out.println("狗看家");
}
} //测试类
class ExtendsTest5 {
public static void main(String[] args) {
//测试猫
//方式1
Cat c1 = new Cat();
c1.setName("Tom");
c1.setAge(3);
c1.setColor("白色");
System.out.println("猫的名字是:"+c1.getName()+";年龄是:"+c1.getAge()+";颜色是:"+c1.getColor());
c1.eat();
c1.playGame();
System.out.println("---------------"); //方式2
Cat c2 = new Cat("杰瑞",5,"土豪金");
System.out.println("猫的名字是:"+c2.getName()+";年龄是:"+c2.getAge()+";颜色是:"+c2.getColor());
c2.eat();
c2.playGame(); }
}

java学习(五)java类继承的更多相关文章

  1. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  2. “全栈2019”Java第五十章:继承与构造方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. java学习一目了然——File类文件处理

    java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...

  4. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  5. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  6. Java学习:Properties类

    Java学习:Properties类 学习目标 认识properties文件,理解其含义,会正确创建properties文件. 会使用java.util.Properties类来操作propertie ...

  7. Java学习:File类

    Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...

  8. Java的对象与类,继承

    Java的对象与类,继承 题目1.Java类的建立与使用 设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名.当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的 ...

  9. [ Java学习基础 ] Java构造函数

    构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...

  10. [ Java学习基础 ] Java的抽象类与接口

    一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...

随机推荐

  1. 面试宝典:Java面试中最高频的那20%知识点!

    Java目前已经不仅仅是一门开发语言,而是一整套生态体系. 作为一个Java程序员,既是幸运的,也是不幸的.幸运的是我们有很多轮子可以拿过来用,不幸的是我们有太多的轮子需要学习. 但是,无论是日常工作 ...

  2. 一个不明觉厉的貌似包含很多linux资料索引的网页

    http://man.lupaworld.com/content/other/Linux/linuxmanage/node108.html 貌似是个官方的doc之类的...

  3. A标签的href设置为#代表什么意思?

    空锚点<a href="#abc">a link <#>表示跳到锚点abc,<a href="#">a link <# ...

  4. jquery 三元运算

    三元运算: 条件  ? 条件为真取此值 : 条件为假取此值; var v = $(:check).prop('checked')?faule:true; $(:check).prop('checked ...

  5. django模版 常用变量

    在request中有很多有用的东西,如下: 获取当前用户: 1 {{ request.user }} 如果登陆就显示内容,不登陆就不显示内容: 1 2 3 4 5 {% if request.user ...

  6. Python列表的生成

    要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11): >>> range(1, 11) [1, 2, 3, 4, 5, ...

  7. iOS布局之Auto Layout

    学习资源: <iOS6核心编程>自动布局部分 <iOS6范例经典>自动布局部分 Tutorial: iOS 6 Auto Layout versus Springs and S ...

  8. 规范抢先看!微信小程序的官方设计指南和建议

    基于微信小程序轻快的特点,我们(微信官方)拟定了小程序界面设计指南和建议. 设计指南建立在充分尊重用户知情权与操作权的基础之上.旨在微信生态体系内,建立友好.高效.一致的用户体验,同时最大程度适应和支 ...

  9. 回文链表 · Palindrome Linked List

    [抄题]: 设计一种方式检查一个链表是否为回文链表.1->2->1 就是一个回文链表. [暴力解法]: 时间分析: 空间分析: [思维问题]: 以为要从从后往前扫描,不知道调用revers ...

  10. How to Get the Length of File in C

    How to get length of file in C //=== int fileLen(FILE *fp) { int nRet = -1; int nPosBak; nPosBak = f ...