继承:继承和多态是java重要的一部分,继承是一种减少重复程序代码的机制,将多个类相同的实例变量和方法(还有构造函数)抽象成一个类中所拥有的,这个类就是前面那几个类的父类。 这么说有点...
从另一方面说,如果一个类继承了一个类,那么它就继承了那个类的实例变量和方法(权限允许的话)。
怎么才能确定谁是父类和谁又是它的子类呢?
书里面是用了“is a”方法,即:葡萄酒是酒,那么葡萄酒类就是酒这个类的子类,酒类就是父类;白葡萄酒是葡萄酒,即白葡萄酒类是葡萄酒的子类,子类的子类也能通过“is a”方法,即白葡萄酒也是酒。
例如:类A继承类b;class A extends B;那么A就会拥有类B的实例变量和方法(包括构造函数)。
子类A也可以覆盖从类B继承下来的方法,要求子类方法要与父类方法的方法名,参数都相同,且返回类型要兼容(即返回类型相同或者是该类型的子类)。覆盖的时候不可以降低方法的存取权限。
还有方法重载,重载与覆盖不同,重载的返回类型可以不同,可以改变方法的存取权限,参数也需要不同,与覆盖一样的是方法名是相同的。(参数不同,返回类型相同或不相同都是重载。
继承中的方法调用顺序是先在子类中调用该方法,若子类中没有该方法就向它的父类调用
,如果子类覆盖了该方法,就会调用覆盖后的方法;若调用完子类的方法,还想调用父类中的同名方法,就要用supper来调用,例如:supper.方法名();
多态:多态是建立在继承的基础上的,当运用多态时,引用类型可以是实际对象类型的父类;就是可以使用父型作为方法的参数和返回类型或者是数组的类型。这样的话在扩充程序时你只需要新建一个集成父类的新建类,不需要修改已经编写好的代码。例如
class A{
void go(A a){ //A中的方法go,参数是A的实例。
System.out.printf(“duo tai ”);
} }
class B extends A{ //B会继承A类的go方法,
}
class F extends B { //F又会继承B类所继承的方法。
}
class C_Test{
public static void main(String[]args){
A d=new B(); //引用类型为类A的,所引用的确实B类对象
B b=new B();
F f=new F();
d.go(f); ,//引用变量d调用go方法,参数是F类的实例,则会执行F类中的go方法
d.go(b) //引用变量d调用go方法,参数是B类的实例,则会执行B类中的go方法
} } //所以说go这个方法可以取用任何一种A,只要所传入的是A子类的对象,方法都能运行,
如果需要不同于父类A的输出,只要在子类中将继承下来的父类方法覆盖即可,
例如:void go(A a){
System.out.printf(“duo tai ”);} //是覆盖还是重载的关键在于参数(入参)和返回类型。
如果子类中定义的是父类方法的重载,那在调用时不会调用重载的方法而会调用父类中的方法。
编写程序代码时将参数声明成父类类型,可以在运行的时候传入任何的子类对象,运行结果是什么就看你在子类中是否覆盖父类中的该方法,若覆盖了就是子类覆盖方法中的结果,若没有则是父类方法中的结果。
分享到:
相关推荐
Java继承和多态
Java继承和多态PPT教案学习 本PPT教案主要讲解了Java中的继承和多态机制,包括继承、里式代换原则、多态和动态绑定、方法重载、重载构造函数和方法覆盖等概念。 继承是面向对象编程的基本机制之一,允许一个类继承...
java 继承和多态PPT教程
本实验报告的目的是为了掌握Java语言中的继承和多态机制,通过模拟编写程序,理解类的继承、多态、继承和多态规则,并独立编程,实现类的继承和多态。 继承机制 在Java中,继承是一种机制,允许一个类继承另一个类...
Educoder题目:Java面向对象 - 封装、继承和多态的综合练习答案解析
Educoder题目:Java面向对象 - 封装、继承和多态答案解析
在Java中,多态分为编译时多态和运行时多态。编译时多态主要通过方法重载实现,运行时多态主要通过方法重写(Override)和接口实现实现。 **2. 方法重写** 当子类继承父类并覆盖(Override)父类的某个方法时,这...
1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字
JAVA继承和多态实验报告.doc
### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以为类定义一组方法签名,但不提供这些方法的具体实现。这有助于...
java 实验 继承与多态rectAngle 定义矩形类,用户输入矩形的长与宽,程序计算其面积和周长;派生子类正方形类,定义一个接口Printable源代码
里面的内容为: 第1关:学习-Java继承和多态之接口
在本实验报告中,我们将深入探讨Java编程中的两个核心概念:类的继承和多态的应用。实验主要目标是加深对抽象类和抽象方法的理解,并掌握如何在实际编码中实现类的继承以及多态性。 首先,让我们理解抽象类和抽象...
在Java中,多态性主要体现在两个方面:编译时多态和运行时多态。 编译时多态主要通过方法重载实现,而运行时多态则依赖于继承和接口。例如: ```java public abstract class Vehicle { public abstract void move...
面向对象编程是Java的核心特性,本教程主要涵盖了三个关键概念:封装、继承和多态,以及相关的访问修饰符和方法修饰符。 封装是面向对象编程的基础,它涉及到将数据(属性)和操作这些数据的方法(行为)组合在一个...
这个压缩包"java继承、多态的简单程序.zip"显然包含了一些示例代码,旨在帮助初学者理解这两个概念。接下来,我们将深入探讨Java中的继承和多态性。 ### 继承(Inheritance) 在Java中,继承允许一个类(子类)...
本资源摘要信息将对 Java 基础知识点进行总结,涵盖继承、封装、多态等概念,并对面向对象的设计、数据库设计模式等进行讲解。 继承 继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是...
Java 中继承与多态的题目 本资源摘要信息是关于 Java 中继承和...本资源摘要信息涵盖了 Java 中继承和多态的基本概念和应用,通过实验内容,我们可以看到继承和多态的强大威力,可以帮助我们更好地设计和实现程序。