一.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接口、继承和多态
Object是Java编程中的基础类,所有类都直接或间接地继承了它,并从它继承了一些方法,如equals()、toString()和getClass()等。 首先,Object类是Java中的根源,它定义了所有Java类的通用行为,如Object类的toString...
讲述了Java继承机制,说明了Java继承的特点,文档是在网上下载后整理的
结论:abstract class和Interface是JAVA语言中的两种定义抽象类的方式。Interface将abstract的概念作了更进一步的发挥。你可以想像Interface是“纯粹”的 abstract class,只可以包含抽象方法,也包括一些常量的定义...
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中的封装类Cloneable
详细描述了最新tomcat上开发Java Web应用的各种技术,主要内容包括Tomcat和JavaWeb开发的基础知识,Java Web开发的高级技术,Tomcat与当前其他通用软件的继承,以及Tomcat的各种高级功能
Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO流 多线程 深入理解内部类 javac和javap Java8新特性终极指南 序列化和反序列化 继承、封装、多态的实现原理 容器...
1. Java 是一种什么语言,JDK,JRE,JVM 的区别? Java 是一种面向对象开发的编程...继承:单继承 提高代码的重用性 多态:多态就是同一个类或者接口,使用不同的实例而执行不同操作,提高 代码的灵活性。 3. 基本数据类型
主要为大家详细介绍了Java集合继承体系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了java继承示例详解,需要的朋友可以参考下
主要介绍了Java继承中方法实例,非常的实用,这里推荐给大家,有需要的小伙伴可以参考下
抽象类只能单继承,接口可以实现多继承。 Java Stream特性 Java Stream具有延迟执行和并行处理的特性,能够极大地提高代码的可读性和性能,让开发者更加专注于业务逻辑的处理。 Java Stream分类 Java Stream主要分为...
nal关键字 1、 被final修饰的成员变量,一旦赋值就不能被修改。那么这种变量我们称之为常量: ... //如果一个方法被final关键字修饰,意味着该方法不能被子类重写。 System.out.println(name+"吃番薯..."); } }
主要介绍了Java类继承关系中的初始化顺序,结合实例形式详细对比分析了Java非继承关系中的初始化与继承关系中的初始化相关原理与操作技巧,需要的朋友可以参考下
从 java.lang.Object 开始,按继承结构对类进行排列。接口不从 java.lang.Object 继承。•查看“概述”页面时,单击“树”将显示所有软件包的分层结构。 •查看特定软件包、类或接口页面时,单击“树”将仅显示该...