1)多态
1)多态的存在是降低代码之间的耦合性
2)如果一个方法的参数类型是一个类,在在调用这个方法时,传入的参数可以是该类的对象,也可以是该类子类的对象。
3)如果一个方法的返回值类型是个类,在调用该方法时,返回值可以是该类的对象,也可以是该类子类的对象。
public class Animal{ public void eat(){ System.out.println("动物吃"); } } public class Dog extends Animal{ public void eat(){ System.oun.println("狗吃"); } public void run(){ System.out.println(""狗跑): } } public class Test{ public static void main(String[] args){ Animal a = new Dog(); a.eat(); } }
上例中是用父类变量指向子类对象,只能调用父类的方法,当子类将父类的方法重写后,将会调用子类的该方法。子类中特有的方法不能被调用。
2)抽象方法,抽象类
抽象方法:没有方法体,用abstract修饰的方法,
抽象类:含有抽象方法的类叫做抽象类,也用abstract修饰。eg:
public abstract class Animal{ public abstract eat(参数列表); }
关于抽象类或抽象方法的几个要点:1)抽象类可以有属性和非抽象方法;2)抽象类不能被new,即不能被实例化;3)当一个类继承一个抽象类时,必须实现这个抽象类的抽象方法,除非该类也是抽象类;4)抽象类本身的作用就是被继承;5)抽象方法不能使用private。
3)接口:只能含有抽象方法,不能被实例化。
关于接口,可以对比多态来学习和理解:1)如果一个方法的参数类型是一个接口类型,在在调用这个方法时,传入的参数是实现该接口的对象。
2)如果一个方法的返回值类型是个接口类型,在调用该方法时,返回值可以是实现该接口的对象。
3)一个类可以实现多个接口。
4)接口中没有构造方法
5)接口之间可以相互继承,即接口间可以使多继承
最后给一个关于理解接口的程序例子
package oct_17_2; public interface Usb { public void start(); public void end(); } public interface Store { public void store(); } package oct_17_2; public class Udisk implements Usb,Store{ @Override public void store() { System.out.println("向优盘存储数据"); } @Override public void start() { System.out.println("优盘已启动"); } @Override public void end() { System.out.println("优盘可安全弹出"); } } package oct_17_2; public class Phone implements Store,Usb{ @Override public void start() { System.out.println("手机已连接电脑"); } @Override public void end() { System.out.println("手机已安全弹出"); } @Override public void store() { System.out.println("手机正在存储"); } } package oct_17_2; public class Pc { public void runUsb(Usb usb){ usb.start(); usb.end(); } public Usb getX(){ return new Udisk(); } public void runStore(Store store){ store.store(); } } package oct_17_2; public class Test { public static void main(String[] args) { Pc p = new Pc(); Udisk u = new Udisk(); p.runUsb(u); p.runStore(new Phone()); } }
运行结果:
这一部分的知识,很大一部分都是靠理解,甚至记忆的,加油!
相关推荐
抽象类多态接口相关资料
### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。
视频课程可能包括了如何创建抽象类,定义抽象方法,以及如何通过子类化实现多态的例子。通过学习这些,开发者能够更好地理解和掌握面向对象编程的关键概念,提升代码设计和组织的能力。 至于"第七章(13)面向对象...
在编程领域,多态、抽象和接口是面向对象编程中的核心概念,它们是设计和实现高效、可扩展软件的关键。本教程将通过一个具体的案例——模拟计算机与移动存储设备的交互,来阐述这些概念。 首先,多态性...
在Java或C#等面向对象的语言中,抽象方法是实现多态的一种常见方式。让我们深入探讨一下如何通过抽象方法来实现多态。 首先,我们需要创建一个抽象类,这个抽象类代表了所有动物的共同特性。例如,我们可以定义一个...
在“多态(抽象方法和虚方法)”的压缩包文件中,可能包含了示例代码、讲解文档或者教学视频,这些资源可以帮助我们更深入地理解这些概念,并通过实践来巩固我们的知识。通过学习和应用这些技术,我们可以编写出更加...
java多态和抽象笔记
笔记
### C#中的多态与抽象类 在C#编程语言中,多态和抽象类是面向对象编程(OOP)的重要特性,它们为程序设计提供了灵活性和可扩展性。下面将详细探讨这两个概念,并通过一个具体的示例来展示它们的应用。 #### 1. ...
在`da06抽象继承封装多态接口.zip`的案例中,开发者可能创建了一系列的类,通过这些类展示了Flutter中如何使用抽象、继承、封装和多态来设计和组织代码。通过运行Test文件,我们可以验证和理解这些概念在实际应用中...
"接口、多态、抽象类、final" 在 Java 编程语言中,接口、多态、抽象类和 final 是四个非常重要的概念,它们在面向对象编程(Object-Oriented Programming,OOP)中扮演着关键角色。 1. 接口 接口是 Java 中的一...
day02-多态&抽象类&接口
除了虚函数,C++还提供了纯虚函数的概念,用于创建抽象基类。纯虚函数在函数声明前加上`= 0`,如`virtual void func() = 0;`。含有纯虚函数的类不能被实例化,但可以作为其他类的基类,强制这些子类实现纯虚函数。...
C# 多态 抽象类继承的武器场景示例 接口实现的开火场景示例 虚方法的武器场景示例
Java抽象类接口与多态PPT教案学习 Java抽象类接口与多态是Java编程语言的核心概念,本篇资源文件将详细介绍Java中的抽象类、接口和多态的概念、特点和应用。 一、抽象类 抽象类是Java中的一种特殊的类,它不能被...
本下例是讲解工厂模式 多态 接口 抽象 重构的经典下例子,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。通过下面的代码,详细地阐述面向对象设计思想。体现了软件工程的三个主要目标:重用性、灵活性和扩展...
封装、继承、多态、抽象、异常.html
面向对象编程中的继承、多态与抽象是设计和构建复杂软件系统的核心概念。在Java或类似的面向对象语言中,这些概念极大地提高了代码的重用性和灵活性。以下是对这些概念的详细解释: **继承(Inheritance)** 继承...
本文将深入探讨它们在继承、覆盖、多态和抽象类这几个关键概念上的异同。 首先,让我们从继承说起。继承是面向对象编程的核心特性,允许子类从父类中继承属性和方法。在Java中,类的继承使用关键字`extends`,而C#...