`
百卉含英
  • 浏览: 26722 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

多态 抽象 借口

阅读更多

    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());
         }
}

 运行结果:



 这一部分的知识,很大一部分都是靠理解,甚至记忆的,加油!

  • 大小: 7.5 KB
分享到:
评论

相关推荐

    抽象类多态接口

    抽象类多态接口相关资料

    java中对象转型多态抽象类接口笔记.doc

    ### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。

    php多态和抽象类,php教程

    视频课程可能包括了如何创建抽象类,定义抽象方法,以及如何通过子类化实现多态的例子。通过学习这些,开发者能够更好地理解和掌握面向对象编程的关键概念,提升代码设计和组织的能力。 至于"第七章(13)面向对象...

    类的高级特征对多态抽象和接口的理解学时PPT学习教案.pptx

    在编程领域,多态、抽象和接口是面向对象编程中的核心概念,它们是设计和实现高效、可扩展软件的关键。本教程将通过一个具体的案例——模拟计算机与移动存储设备的交互,来阐述这些概念。 首先,多态性...

    使用抽象方法实现多态

    在Java或C#等面向对象的语言中,抽象方法是实现多态的一种常见方式。让我们深入探讨一下如何通过抽象方法来实现多态。 首先,我们需要创建一个抽象类,这个抽象类代表了所有动物的共同特性。例如,我们可以定义一个...

    面向对象练习之三--多态 (抽象方法和虚方法)

    在“多态(抽象方法和虚方法)”的压缩包文件中,可能包含了示例代码、讲解文档或者教学视频,这些资源可以帮助我们更深入地理解这些概念,并通过实践来巩固我们的知识。通过学习和应用这些技术,我们可以编写出更加...

    java多态和抽象笔记

    java多态和抽象笔记

    ._2021-1-18 oop 多态 抽象.docx

    笔记

    vs2005_winfrom_C#多态和抽象类

    ### C#中的多态与抽象类 在C#编程语言中,多态和抽象类是面向对象编程(OOP)的重要特性,它们为程序设计提供了灵活性和可扩展性。下面将详细探讨这两个概念,并通过一个具体的示例来展示它们的应用。 #### 1. ...

    da06抽象继承封装多态接口.zip

    在`da06抽象继承封装多态接口.zip`的案例中,开发者可能创建了一系列的类,通过这些类展示了Flutter中如何使用抽象、继承、封装和多态来设计和组织代码。通过运行Test文件,我们可以验证和理解这些概念在实际应用中...

    接口,多态,抽象类,final

    "接口、多态、抽象类、final" 在 Java 编程语言中,接口、多态、抽象类和 final 是四个非常重要的概念,它们在面向对象编程(Object-Oriented Programming,OOP)中扮演着关键角色。 1. 接口 接口是 Java 中的一...

    day02-多态&抽象类&接口

    day02-多态&抽象类&接口

    C++多态.多态与抽象描述.zip

    除了虚函数,C++还提供了纯虚函数的概念,用于创建抽象基类。纯虚函数在函数声明前加上`= 0`,如`virtual void func() = 0;`。含有纯虚函数的类不能被实例化,但可以作为其他类的基类,强制这些子类实现纯虚函数。...

    C# 多态教材 e.g 抽象类继承的武器场景示例

    C# 多态 抽象类继承的武器场景示例 接口实现的开火场景示例 虚方法的武器场景示例

    Java抽象类接口与多态PPT教案学习.pptx

    Java抽象类接口与多态PPT教案学习 Java抽象类接口与多态是Java编程语言的核心概念,本篇资源文件将详细介绍Java中的抽象类、接口和多态的概念、特点和应用。 一、抽象类 抽象类是Java中的一种特殊的类,它不能被...

    讲解面向对象中多态 接口 抽象 重构 工厂模式

    本下例是讲解工厂模式 多态 接口 抽象 重构的经典下例子,结合一个尽可能简洁的实例来说明OOD、设计模式及重构。通过下面的代码,详细地阐述面向对象设计思想。体现了软件工程的三个主要目标:重用性、灵活性和扩展...

    封装、继承、多态、抽象、异常.html

    封装、继承、多态、抽象、异常.html

    第三讲-继承、多态与抽象-v21

    面向对象编程中的继承、多态与抽象是设计和构建复杂软件系统的核心概念。在Java或类似的面向对象语言中,这些概念极大地提高了代码的重用性和灵活性。以下是对这些概念的详细解释: **继承(Inheritance)** 继承...

    Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳

    本文将深入探讨它们在继承、覆盖、多态和抽象类这几个关键概念上的异同。 首先,让我们从继承说起。继承是面向对象编程的核心特性,允许子类从父类中继承属性和方法。在Java中,类的继承使用关键字`extends`,而C#...

Global site tag (gtag.js) - Google Analytics