`
lushuaiyin
  • 浏览: 704653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用基类,接口,本类实例化对象的区别

 
阅读更多

废话不多说了,代码很清楚

写个基类FatherClass.java

package com;

public class FatherClass {
	
	public void speak(){
		System.out.println("Father method,speak() ");
	}
	public void sing(){
		System.out.println("Father method,sing() ");
	}
	public void jump(){
		System.out.println("Father method,jump() ");
	}
	public void run(){
		System.out.println("Father method,run() ");
	}

}

写个接口MotherInterface.java

package com;

public interface  MotherInterface {
	
	public void cook();
	public void clean();
	public void love();

}

写具体的类SonClass.java


package com;

public class SonClass extends FatherClass implements MotherInterface{

	@Override
	public void cook() {
		// TODO Auto-generated method stub
		System.out.println("Son method cook()");
	}

	@Override
	public void clean() {
		// TODO Auto-generated method stub
		System.out.println("Son method clean()");
	}

	@Override
	public void love() {
		// TODO Auto-generated method stub
		System.out.println("Son method love()");
	}
	
	////////////////////重载基类方法///////////////////////////////////
	public void jump(){
		System.out.println("Son method,jump(),extends FatherClass ");
	}
	public void run(){
		System.out.println("Son method,run(),extends FatherClass");
	}
	////////////////////写自己的方法///////////////////////////////////
	public void myMehtod(){
		System.out.println("Son method,myMehtod(),我自己的方法");
	}
	public static void main(String[] ss){
		//用基类实例对象,对象只有基类方法
		//(如果重载基类方法,走重载的那个方法)
		FatherClass fc=new SonClass();
		//用接口实例对象,对象只有接口方法
		//这些方法必须实现
		MotherInterface mi=new SonClass();
		//用本类实例对象,既有基类方法(有重载方法走重载的那个);
		//又有接口方法(接口方法必须实现);还有自己本类的独有的方法。
		SonClass son=new SonClass();
		
		System.out.println("--------基类实例的对象fc------------");
		fc.speak();
		fc.sing();
		fc.jump();
		fc.run();
		System.out.println("--------接口实例的对象mi------------");
		mi.cook();
		mi.clean();
		mi.love();
		System.out.println("--------本类实例的对象son------------");
		son.speak();
		son.sing();
		son.jump();
		son.run();
		son.cook();
		son.clean();
		son.love();
		son.myMehtod();
	}

}

控制台打印:

--------基类实例的对象fc------------
Father method,speak()
Father method,sing()
Son method,jump(),extends FatherClass
Son method,run(),extends FatherClass
--------接口实例的对象mi------------
Son method cook()
Son method clean()
Son method love()
--------本类实例的对象son------------
Father method,speak()
Father method,sing()
Son method,jump(),extends FatherClass
Son method,run(),extends FatherClass
Son method cook()
Son method clean()
Son method love()
Son method,myMehtod(),我自己的方法



分享到:
评论

相关推荐

    基类,派生类

    总结来说,基类与派生类是面向对象编程中的重要概念,它们允许代码复用,实现多态性,以及结构化复杂系统。在C++中,通过基类定义通用接口,派生类实现特定功能,可以构建出层次分明、可扩展的软件架构。`classic....

    Java实例化一个抽象类对象的方法教程

    由于抽象类自身不能被实例化,这意味着你不能使用`new`关键字直接创建一个抽象类的对象。然而,尽管不能直接实例化,抽象类在特定情况下依然可以间接地创建对象。以下将详细介绍如何在Java中处理抽象类实例化的问题...

    C#帮助类、各种基类等

    帮助类的优点在于提高了代码的可读性和可维护性,避免了重复的代码,并且由于大多数帮助类是静态的,我们可以直接调用其方法,无需实例化对象。 接下来,基类是继承体系的一部分,它定义了一组公共特性,这些特性...

    C#基类/工具类

    基类(Base Class)是派生类(Derived Class)的基础,它定义了一组接口和实现,派生类可以在此基础上扩展或重写。工具类(Utility Class)则是一类专门用于封装常用方法和功能的静态类,它们通常不保存状态,只提供...

    C#接口抽象类区别实例

    (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区 别: (1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 (2) 抽象类是一个不...

    怎样使一个class不能被实例化

    ### 如何使一个类不能被实例化 在面向对象编程中,有时我们希望定义一个类作为其他类的基础,但它本身不应该被创建实例。这种类型的类通常被称为“抽象基类”或“接口”。本文将详细介绍如何在C++中实现这一目标。 ...

    DLL虚基类的方式导出类

    在C++中,虚基类是一种特殊类型的基类,当一个类被声明为虚基类时,它的子类会有一个唯一的虚基类实例,无论这个子类有多少个间接父类继承了该虚基类。这样可以解决多继承中的二义性问题,并确保每个对象都只有一个...

    PHP程序设计-3期(KC016) 3.8.1创建和使用类拓展知识:创建类和实例化对象.doc

    在本节中,我们将深入探讨如何在PHP中创建类和实例化对象,以及与之相关的抽象类和抽象方法的概念。 首先,让我们了解什么是抽象类。抽象类是一种特殊的类,它不能直接被实例化,而是作为一个基类供其他类继承。...

    C#多态性实例,向基类构造函数传递参数.rar

    6. **实例化和类型转换**:在使用多态性时,我们可能有一个基类引用指向派生类的对象,这样在运行时,根据对象的实际类型,可以调用相应的重写方法。例如: ```csharp BaseClass myObject = new DerivedClass(...

    声明一个图形基类并在它的基础上派生出其他类并编写程序实现各类的定义及实现

    实例化对象时,可以调用相应类的构造函数,再通过对象调用成员函数来计算面积和周长,以及输出图形信息。 具体到代码实现,当创建一个 Rectangle 对象时,需要传入高度和宽度两个参数;创建一个 Circle 对象时,则...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    2. 抽象类不能被实例化,只能用作其他类的基类。这意味着不能创建抽象类的对象。 ```csharp public abstract class A { // ... } // 错误示例:A a = new A(); // 抽象类不能实例化 ``` 3. 抽象类可以包含抽象属性...

    js代码-基于class的抽象基类,通过new.target来实现。由于类的原型在实例化对象的时候就存在了,因此可以通过this来检查类是否实现了某个方法

    抽象基类(Abstract Base Class,ABC)是一种不能直接实例化的类,通常包含一些需要子类实现的抽象方法。在JavaScript中,我们无法直接声明一个抽象方法,但可以通过在方法体内抛出错误来模拟这种行为。例如: ```...

    \\java类、抽象类、接口、继承和对象解析 .doc

    Java 类、抽象类、接口和继承是面向对象编程的核心概念,它们构成了 Java 语言的基石。在 Java 中,类是用来封装数据和行为的结构,而对象则是类的实例,具有具体的属性和行为。 1. **类与对象的区别** 类是模板...

    接口与抽象类区别

    接口是一种特殊的抽象类,它不能被实例化,只能被实现。接口的主要特点是: 1. 接口不能被实例化。 2. 接口只能包含方法声明。 3. 接口的成员包括方法、属性、索引器、事件。 4. 接口中不能包含常量、字段、构造...

    面向对象和抽象类和接口的理解

    抽象类在面向对象编程中扮演着重要的角色,它是一种不能实例化的类,主要用来被其他类继承。抽象类可以包含抽象方法(没有具体实现的方法)和非抽象方法(有具体实现的方法)。定义抽象类的目的是为了一组相关类提供...

    使用基类管理一个时钟的列表(可以使用STL的vector)

    在C++编程中,使用基类来管理一个时钟列表是一种常见的面向对象设计策略。这种设计允许我们通过统一的接口来处理不同的时钟类型,同时保持代码的灵活性和可扩展性。下面我们将深入探讨这个话题。 首先,让我们定义...

    C#多态性实例,向基类构造函数传递参数

    在C#编程语言中,多态性...通过基类构造函数传递参数,我们可以确保在初始化子类实例时,基类的数据成员也能得到正确的初始化。这不仅提高了代码的复用性,还降低了维护成本,使得程序更加易于理解和维护。

    DELPHI接口技术开发实例解析

    还有`ISerializable`用于序列化,`IInterface`作为所有接口的基类等。 10. 接口的高级应用: 接口可以用于实现事件处理、设计模式(如策略模式、观察者模式)、以及复杂的组件通信。通过接口,开发者可以创建灵活、...

    c# 使用串口基类源码

    本资源提供了使用C#实现串口通信的基类源码,允许开发者选择端口比特率,这在进行Rs232串口通信时非常关键。 Rs232,全称为Recommended Standard 232,是电子工业协会(EIA)制定的一种串行物理接口标准。它定义了...

    面向对象实验3类的多态

    当一个类含有纯虚函数时,该类被称为抽象类,不能直接实例化,但可以作为其他类的基类。抽象类的主要作用是定义一个接口,即规定了派生类必须实现的成员函数。例如,`CGraph`类的`GetVertexNumber()`如果被声明为...

Global site tag (gtag.js) - Google Analytics