继承
人类是一个大类People,而儿童Child、青年人Youth、中年人Adult、老年人Elder都属于人类。后四种类有人类的共同特征,能完成人类公有的许多行为,当然,也有一些本类特有的特征和特定的行为。此时,我们将后四种类与人类的关系叫做“子类”和“父类”,子类“继承”父类。生活中还有很多场景也有关于继承。
eg.
public class People(){}
//继承的关键字是extends
public class Child extends People(){}
//子类继承到父类所有的属性和方法(除构造器),能调用的属性和方法却是有限的
public class Youth extends People(){}
重写
当子类和父类用一个同名方法,但是子类的实现却和父类不同、有其特殊性时,用到方法的重写。重写是指方法定义相同,但是实现不同,存在于父子类之间。
eg.
public class People(){
public void walk(){
System.out.println("I'm walking...");
}
}
//年青人属于人,都能走路,但他们走路比普通人而言,更走的轻快和开心;喜事用 //到了方法的重写
public class Youth(){
public void walk(){
System.out.println("I walk very fast and happy.");
}
}
自动转型
一个学生,是可以学习的。如果一个学生想用大学生、小学生、高中生的学习方法时,是不是要在学生类里写n个不同类别学生的学习方法呢?这时,用到自动转型。可以大量减少代码的重复编写:自动转型后的父类对象,可以直接调用子类已经重写的方法。
eg.
Student stu1 = new USStudent(); //stu1自动转型为学生类对象
Student stu2 = new SeniorStudent(); //stu2自动转型为学生类对象
stu1.study(); //学生类对象调用的是大学生的学习方法
stu2.study(); //学生类对象调用的是中学生的学习方法
多态
一个学生能学习,但是引入了自动转型机制、大学生、中学生、小学生继承了学生类、方法重写了之后。父类对象调用一个study()方法,结果是不确定的。又如,我们大家都是人,但是由于我们每个人都是独特的。这就是多态最直接的体现。
eg.
public class Student(){
System.out.println("0000");
}
public class USStudent() extends Student{
System.out.println("1111");
}
public class SeniorStudent extends Student(){
System.out.println("2222");
}
//多态的体现:父类对象两次调用study,结果是完全不同的
Student stu1 = new USStudent();
stu1.study();
Student stu2 = new SeniorStudent();
stu2.study();
接口
比如,我们要画图形,LINE、OVAL、RECT等都继承自DrawImage类,但是每个子类画图的方法都是完全不一样的,此时,父类里面不需要有什么具体实现就行。这时,接口出现了。它的作用就是给其他类继承(这里用到一个特殊的关键字:interface,是特殊的继承),让其他类实现里面很抽象的方法。
eg.
//接口里的方法都是抽象的,没有方法体;属性都是常量;不能实例化一个对象
public interface DrawImage(){
public void draw();
}
public class LINE implements DrawImage(){
public void drawLine(){
System.out.println("draw a line");
}
}
public class OVAL implements DrawImage(){
public void drawOval(){
System.out.println("draw a oval");
}
}
public class LINE implements DrawImage(){
public void drawRect(){
System.out.println("draw a rect");
}
}
抽象类
上一个“接口”要求实现它的类实现所有它的方法,这样也许会是代码态冗长,因为有的方法根本就没有实现的必要。抽象类出现了。继承抽象类的类必须实现其抽象方法,但是对于普通方法,是可以按照编程的需要选择性实现的。这样,代码会更简洁。
eg.
MouseAdapter抽象类(具体在书本上;注意抽象类也不能实例化一个对象)
分享到:
相关推荐
继承和接口和java访问权限修饰符总结 本文总结了 Java 中的继承、接口和访问权限修饰符的概念和使用。继承是 Java 中的一种机制,允许子类继承父类的属性和方法,並且可以对父类的方法进行重写或重载。动态绑定是指...
总结起来,Java中的接口和继承是两种强大的工具,它们帮助开发者创建灵活、可扩展的代码结构,提高代码的复用性。接口定义了行为规范,而继承则实现了代码的层次化和复用。了解并熟练运用这些概念,对于成为一名优秀...
实验过程中,学生需要自己完成代码编写,调试运行,最后整理实验报告,总结学习到的继承和接口的使用方法。 通过这个实验,学生能够深入理解Java中的继承机制,如何通过重写父类方法实现子类特有功能,同时掌握接口...
### C#接口定义和继承的区别详解 在C#编程语言中,接口(Interface)与继承(Inheritance)是实现代码复用与扩展性的两种重要机制。对于初学者来说,理解这两种概念及其之间的区别是非常重要的。 #### 一、接口...
总结起来,面向对象的继承和接口是OOP的基石,它们使得类能够以更灵活的方式相互关联,实现代码的复用和系统设计的模块化。理解和熟练掌握这两个概念,对于开发高效、可维护的Java应用程序至关重要。
总结起来,C#中的公共接口继承允许开发者定义一组通用操作,并强制类遵循这些操作的约定。通过实现接口,类可以具有多种行为,实现多态性,提高代码的灵活性和可重用性。接口继承和实现是C#面向对象编程的重要组成...
**类的扩展和接口的扩展总结:** 类的继承和接口的扩展是Java中实现代码复用和设计灵活性的关键。继承允许我们创建基于现有类的子类,以增加或修改特性,而接口则提供了定义行为规范而不涉及实现的方式。合理使用这...
总结起来,通过普通类、接口和抽象类的组合使用,我们可以有效地实现单继承和多继承,并应用于CRUD操作。单继承保证了简洁的层次结构,而多继承和接口提供了更灵活的代码复用。抽象类则为子类设定了必须实现的基本...
Java编程语言中的继承、接口和访问权限修饰符是面向对象编程的重要概念,它们共同构建了类与类之间复杂的关联和数据封装。以下是这些概念的详细解释: **多态性**: 多态性允许一个对象引用变量引用不同类型的子类...
计算机二级摸底测验J继承和接口和java访问权限修饰符总结ava题目
本案例通过定义接口`Printx`和具体类`Rectangle`与`Square`,不仅展示了接口的定义与使用,还深入讲解了类的继承以及多态的应用。这些概念对于理解面向对象编程的基本原理非常重要,并且有助于开发更加高效、灵活和...
本实验主要涵盖了Java编程中的两个核心概念:继承和接口,它们是面向对象编程的关键组成部分。面向对象编程允许我们通过继承和接口来构建复杂且可扩展的软件系统。 **继承**是Java中实现代码重用的一种机制。在Java...
1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结
这篇博客"《C++接口实现总结》"可能讨论了如何在C++中实现接口,以及它在实际开发中的应用。下面我们将详细探讨C++中实现接口的一些常见方法和相关知识点。 1. **抽象类(Abstract Class)**:C++通过包含纯虚函数...
### 继承、多态与接口的理解 #### 继承 继承是面向对象编程中的一个核心概念,它允许创建一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类不仅可以复用父类的代码,还可以根据自身需求扩展或覆盖...
总结一下,C#中通过混合使用接口和类可以实现类似多继承的功能。接口定义了一组必须实现的方法,类实现这些接口以获得所需的行为。这种方式让C#程序员能够构建复杂且可扩展的系统,同时保持代码的清晰性和简洁性。在...
根据提供的文档信息,我们可以总结并深入探讨以下几个关键的Java知识点: ### 1. 方法重载(Overloading) **概念:** 方法重载是指在一个类中定义多个同名的方法,但这些方法具有不同的参数列表(参数数量不同、...
### JAVA继承基本类、抽象类、接口的区别与联系 #### 一、概述 在Java语言中,类(Class)的设计是面向对象编程的核心之一。Java提供了三种方式来扩展类的功能:基本类、抽象类和接口。这三者之间既有相似之处,也...