`
汤小润
  • 浏览: 3637 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论
阅读更多

一.Java中类继承的关键字:extends

(1)例如,新建一个学生类

public class Student{

private String name;

public String getName() {

return name;

}

 

public void setName(String name) {

this.name = name;

}

}

 

//再新建一个大学生类,即可以继承自学生类

public class UNStudent extends Student{

  }           //子类会继承父类中所有的方法和属性,当私有的不可以直接调用

//也就是说,当父类的限定符为public,protected和默认时,均可以直接继承

 

(2)注意!! 当父类自己定义了带参数的构造方法,那么在子类的构造方法中一定要自己调用一下!

public class Student{

private String name;

 

public Student(String name){

this.name = name;

}

}

 

public class UNStudent extends Student{

         public Student(String name){      //在子类中, 必须再次写带参数的构造方法。

                 super("");              //若父类中仅有一个无参数的构造方法,那么不必再在子类中写构造方法

}

 

二.Java子类中方法的重写

    有时候子类中要求有与父类相同的方法,但是实现的功能不同,这时候就要用到方法的重写

    方法重写的要求:返回值类型、方法名以及参数类型都必须与父类相同

例如,学生都有其学习方法

public class Student{

public void study(){

System.out.println("父类的学习方法!");

}

}

 

但是大学生的学习方法会和中学生或者小学生的不同,因此子类的方法就必须各自重写

public class UNStudent extends Student{

public void study(){

System.out.println("大学生类的学习方法!");

}

}

 

//注意!!子类对方法重写后,其访问修饰符的权限必须大于等于父类!

//Java的访问修饰符权限的顺序依次为 public>protected> (default)> private

//当父类方法的限定符为public时,子类必须为public

 

三.Java中类的自动转型和强制转型

我们用一段代码来解释自动转型和强制转型

 

public class Main {

public static void main(String[] args) {

Student un  = new UNStudent();

  //这行代码即为自动转型,注意我们创建的是一个学生对象,但是在new后面调用的是子类的方法

un.study();  //自动转型后子类不可以调用自己特有的方法,只能调用重写过的代码

 

//当需要调用子类中自己特有的方法时,需要实行强制转型,方法如下(类似于数据类型的强制转换)

UNStudent uns = (UNStudent)un;    

uns.demo();  //此demo()方法是大学生类自己特有的,在父类中不存在

 

四.关于父类和子类对象的调用

比如新建一个老师类

public class Teacher {

public void teach(Student s){    //需要传人一个学生对象

s.study();

}

}

 

//并新建一个老师对象

Teacher t = new Teacher();

 

//当老师调用自己的方法时,传入的对象要求为Student类

t.teach(st);  //注意,此时传入的既可以为Student类的对象,也可以传入Student所有子类的对象

//也就是说,在类的继承中,所有类要实现某个方法,只需调用同一个方法名

 

五.总结

    Java中利用继承机制将类一级一级联系起来,学好继承是后面学好Java的基础,一定要注意Java中继承的声明和使用。

分享到:
评论

相关推荐

    java类的继承详解说明

    java类的继承详解说明

    Java继承(超详解)

    Java继承(超详解)

    详解java接口、继承和多态

    详解java接口、继承和多态

    java中关键字Object详解

    Object是Java编程中的基础类,所有类都直接或间接地继承了它,并从它继承了一些方法,如equals()、toString()和getClass()等。 首先,Object类是Java中的根源,它定义了所有Java类的通用行为,如Object类的toString...

    Java的继承机制详解

    讲述了Java继承机制,说明了Java继承的特点,文档是在网上下载后整理的

    Java中抽象类和接口的区别与作用详解

    结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义...

    Java开发详解.zip

    031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf ...

    Java继承详解

     多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。  多个类可以称为子类,单独这个类称为父类、超类或者基类。  子类可以直接访问...

    Java类的继承实例详解(动力节点Java学院整理)

    在Java开发中,我们常常用到继承这一概念,可以说继承是Java这类面向对象编程语言的基石,今天小编一起和大家一起学习java类的继承

    详解Java中的克隆技术

    有关Java中的克隆技术的详细讲述,其中讲解了“浅复制”和“深复制”的用法和区别,继承了Java中的封装类Cloneable

    Tomcat与java web开发技术详解

    详细描述了最新tomcat上开发Java Web应用的各种技术,主要内容包括Tomcat和JavaWeb开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的继承,以及Tomcat的各种高级功能

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO流 多线程 深入理解内部类 javac和javap Java8新特性终极指南 序列化和反序列化 继承、封装、多态的实现原理 容器...

    java基础面试题目详解

    1. Java 是一种什么语言,JDK,JRE,JVM 的区别? Java 是一种面向对象开发的编程...继承:单继承 提高代码的重用性 多态:多态就是同一个类或者接口,使用不同的实例而执行不同操作,提高 代码的灵活性。 3. 基本数据类型

    Java集合继承体系详解

    主要为大家详细介绍了Java集合继承体系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java教程之java继承示例详解

    主要介绍了java继承示例详解,需要的朋友可以参考下

    Java 继承方法实例详解

    主要介绍了Java继承中方法实例,非常的实用,这里推荐给大家,有需要的小伙伴可以参考下

    Java-Stream流详解.pptx.pptx

    抽象类只能单继承,接口可以实现多继承。 Java Stream特性 Java Stream具有延迟执行和并行处理的特性,能够极大地提高代码的可读性和性能,让开发者更加专注于业务逻辑的处理。 Java Stream分类 Java Stream主要分为...

    java继承详解

    nal关键字 1、 被final修饰的成员变量,一旦赋值就不能被修改。那么这种变量我们称之为常量: ... //如果一个方法被final关键字修饰,意味着该方法不能被子类重写。 System.out.println(name+"吃番薯..."); } }

    Java类继承关系中的初始化顺序实例详解

    主要介绍了Java类继承关系中的初始化顺序,结合实例形式详细对比分析了Java非继承关系中的初始化与继承关系中的初始化相关原理与操作技巧,需要的朋友可以参考下

    JAVA API 函数详解

    从 java.lang.Object 开始,按继承结构对类进行排列。接口不从 java.lang.Object 继承。•查看“概述”页面时,单击“树”将显示所有软件包的分层结构。 •查看特定软件包、类或接口页面时,单击“树”将仅显示该...

Global site tag (gtag.js) - Google Analytics