1.JAVA里没有多继承,一个类之能有一个父类。而继承的表现就是多态。一个父类可以有多个子类,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样用父类的变量去引用不同的子类,在调用这个相同的方法print()的时候得到的结果和表现形式就不一样了,这就是多态,相同的消息(也就是调用相同的方法)会有不同的结果。举例说明:
//父类
public class Father{
//父类有一个打孩子方法
public void hitChild(){
}
}
//子类1
public class Son1 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("为什么打我?我做错什么了!");
}
}
//子类2
public class Son2 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("我知道错了,别打了!");
}
}
//子类3
public class Son3 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("我跑,你打不着!");
}
}
//测试类
public class Test{
public static void main(String args[]){
Father father;
father = new Son1();
father.hitChild();
father = new Son2();
father.hitChild();
father = new Son3();
father.hitChild();
}
}
都调用了相同的方法,出现了不同的结果!这就是多态的表现!
2.JAVA中没有多继承,而用接口实现了多继承!一个类或是可以同时实现多个接口!(就相当于C++里一个类同时继承了多个类!)例如:
public class Son implements Father1,Father2,Father3{
.........
}
接口有利于代码功能的扩展(增加新的功能)!而继承则有利于代码功能的修改(把旧的功能改成新的功能)!这里旧功能的修改和新功能的增加前提是不修改旧的功能,旧的功能仍然可以使用!旧类的代码也不做修改!
接着上面的继承举例:上面例子中的子类我们统称为一代子类
1.用继承修改旧的功能。
现在如果一代Son1的功能打孩子,也就是方法hitChild()里边的功能实现有问题,我们要把具体实现修改掉,那么我们可以重新写一个新的二代子类Son11继承自一代子类Son1,并重写其hitChild()方法。
//二代子类
public class Son11 extends Son1{
//重写父类打孩子方法
public void hitChild(){
System.out.println("我是二代子类对此方法的新实现");
}
}
2.用接口实现增加新的功能。
现在类Son1已经有了‘打孩子’功能(也就是方法),而我们有了新的需求,我们需要它还要有一个新的功能‘宠孩子’(新方法pet();)。而旧的代码不能动!那么我们可以定义一个新的接口(PetInterFace),接口里定义这个方法pet()的声明。再重新写一个二代子类Son11,让它先继承类Son1,同时实现接口 PetInterFace!并实现接口里的 pet()方法!
//新接口
public interface PetInterFace{
//新功能方法
public void pet();
}
//二代子类
public class Son11 extends Son1 implements PetInterFace{
//实现接口方法
public void pet(){
System.out.println("父亲很爱我!");
}
}
这样这个二代子类即有了老的方法,又有新的功能!
分享到:
相关推荐
### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以为类定义一组方法签名,但不提供这些方法的具体实现。这有助于...
总结来说,这个实验报告通过实际编程练习,帮助我们巩固了Java中抽象类和抽象方法的定义,以及类的继承和多态性这两个核心概念。通过设计和实现学生管理类,我们可以更深入地理解这些概念在实际问题解决中的应用。
在 Java 中,可以通过方法重写和方法重载来实现多态。方法重写是子类继承父类的方法,并提供不同的实现。方法重载是提供多个同名方法,但是参数类型不同。 面向对象的设计 面向对象的设计是 Java 中的一种设计模式...
在 Java 中,继承可以分为单继承和多继承。单继承是指一个子类继承一个父类,而多继承是指一个子类继承多个父类。Java 只支持单继承,但可以通过接口实现多继承。 继承的特点 继承有以下几个特点: * 子类继承...
1.JAVA里没有多继承,一个类之能有一个父类。 而继承的表现就是多态。一个父类可以有多个子类,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样...
总结来说,"集合+接口+继承+多态"是Java编程中不可或缺的部分,它们共同构建了强大的面向对象编程模型,使得Java能够处理复杂的数据结构,实现灵活、可扩展和高效的代码。理解并熟练掌握这四个概念,对于提升Java...
多态性是通过虚函数(在C++中)或接口(在Java中)实现的,但在C语言中,我们可以使用函数指针和动态绑定来模拟这一概念。每个类可以有一个函数指针数组,其中每个元素对应一个虚函数。在运行时,通过对象的类型信息...
接口间的多继承特性允许一个接口继承多个接口,增强其功能的多样性。 接下来是**继承(Inheritance)**,它是面向对象编程的一个基石,一个类可以继承另一个类的属性和方法,从而实现代码的复用和扩展。在Java中,...
总结起来,Java通过接口和继承实现了多态性和多继承的效果。多态性允许我们使用一个父类型的引用调用不同子类的方法,实现灵活的代码复用和运行时绑定。接口则为类提供了扩展功能的方式,避免了直接修改已有代码的...
下面是一个简单的例子来展示如何在Java中使用继承和多态: ```java // 定义一个基类 Person public class Person { private String name; private int age; public Person(String name, int age) { this.name ...
Java中,一个类可以实现多个接口,从而实现多继承的效果。 - **特点**: - 接口中的方法默认为`public abstract`。 - 接口中的变量默认为`public static final`。 - 一个类可以通过`implements`关键字实现多个...
接口(interface)是Java中实现多态的另一种手段,它定义了一组方法签名,但不提供实现。通过实现接口,类可以拥有接口中声明的所有方法,这在单一继承机制下提供了更多的灵活性。接口还常用于定义常量,提供常量值...
掌握类的继承、方法重写、super关键字的使用、final关键字、抽象类和接口、多态的使用以及异常的处理方式 熟悉面向对象继承和多态的概念
在Java中,多态主要体现在继承和接口的使用上。 - **实现方式**: - **方法重写**:子类重写父类的方法,以改变父类的行为。 - **接口实现**:一个类可以通过实现多个接口表现出多种行为。 - **优势**: - **...
JAVA 封装继承与多态是面向对象程序设计语言中三个非常重要的概念,正确理解和应用这些概念是编写高质量软件的前提。 在实际应用中,封装、继承和多态三个概念都是相互关联、相互影响的。正确地使用这些概念可以...
在Java中,多态是通过方法重写(Override)和接口实现来实现的。 然后,我们讨论一下**接口**。接口是一种定义行为规范的抽象类型,它规定了实现该接口的类必须提供哪些方法。接口在多个类之间提供了契约,确保所有...
接口是 Java 语言中的一种抽象机制,它提供了一种定义类之间的“协议”的方式,允许类之间实现多继承,同时免除 C++ 中的多继承那样的复杂性。同时,接口也可以用来定义常量和抽象方法,提供了一个面向对象的重要...
java 实验 继承与多态rectAngle 定义矩形类,用户输入矩形的长与宽,程序计算其面积和周长;派生子类正方形类,定义一个接口Printable源代码
Java接口是一种完全抽象的类,只能包含常量和抽象方法,允许实现多继承。 二、多态(Polymorphism) 多态是指同一种行为在不同对象上有不同的表现形式,它是面向对象的三大特性之一(封装、继承、多态)的重要组成...