废话不多说了,代码很清楚
写个基类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....
由于抽象类自身不能被实例化,这意味着你不能使用`new`关键字直接创建一个抽象类的对象。然而,尽管不能直接实例化,抽象类在特定情况下依然可以间接地创建对象。以下将详细介绍如何在Java中处理抽象类实例化的问题...
帮助类的优点在于提高了代码的可读性和可维护性,避免了重复的代码,并且由于大多数帮助类是静态的,我们可以直接调用其方法,无需实例化对象。 接下来,基类是继承体系的一部分,它定义了一组公共特性,这些特性...
基类(Base Class)是派生类(Derived Class)的基础,它定义了一组接口和实现,派生类可以在此基础上扩展或重写。工具类(Utility Class)则是一类专门用于封装常用方法和功能的静态类,它们通常不保存状态,只提供...
(2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区 别: (1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 (2) 抽象类是一个不...
### 如何使一个类不能被实例化 在面向对象编程中,有时我们希望定义一个类作为其他类的基础,但它本身不应该被创建实例。这种类型的类通常被称为“抽象基类”或“接口”。本文将详细介绍如何在C++中实现这一目标。 ...
在C++中,虚基类是一种特殊类型的基类,当一个类被声明为虚基类时,它的子类会有一个唯一的虚基类实例,无论这个子类有多少个间接父类继承了该虚基类。这样可以解决多继承中的二义性问题,并确保每个对象都只有一个...
在本节中,我们将深入探讨如何在PHP中创建类和实例化对象,以及与之相关的抽象类和抽象方法的概念。 首先,让我们了解什么是抽象类。抽象类是一种特殊的类,它不能直接被实例化,而是作为一个基类供其他类继承。...
6. **实例化和类型转换**:在使用多态性时,我们可能有一个基类引用指向派生类的对象,这样在运行时,根据对象的实际类型,可以调用相应的重写方法。例如: ```csharp BaseClass myObject = new DerivedClass(...
实例化对象时,可以调用相应类的构造函数,再通过对象调用成员函数来计算面积和周长,以及输出图形信息。 具体到代码实现,当创建一个 Rectangle 对象时,需要传入高度和宽度两个参数;创建一个 Circle 对象时,则...
2. 抽象类不能被实例化,只能用作其他类的基类。这意味着不能创建抽象类的对象。 ```csharp public abstract class A { // ... } // 错误示例:A a = new A(); // 抽象类不能实例化 ``` 3. 抽象类可以包含抽象属性...
抽象基类(Abstract Base Class,ABC)是一种不能直接实例化的类,通常包含一些需要子类实现的抽象方法。在JavaScript中,我们无法直接声明一个抽象方法,但可以通过在方法体内抛出错误来模拟这种行为。例如: ```...
Java 类、抽象类、接口和继承是面向对象编程的核心概念,它们构成了 Java 语言的基石。在 Java 中,类是用来封装数据和行为的结构,而对象则是类的实例,具有具体的属性和行为。 1. **类与对象的区别** 类是模板...
接口是一种特殊的抽象类,它不能被实例化,只能被实现。接口的主要特点是: 1. 接口不能被实例化。 2. 接口只能包含方法声明。 3. 接口的成员包括方法、属性、索引器、事件。 4. 接口中不能包含常量、字段、构造...
抽象类在面向对象编程中扮演着重要的角色,它是一种不能实例化的类,主要用来被其他类继承。抽象类可以包含抽象方法(没有具体实现的方法)和非抽象方法(有具体实现的方法)。定义抽象类的目的是为了一组相关类提供...
在C++编程中,使用基类来管理一个时钟列表是一种常见的面向对象设计策略。这种设计允许我们通过统一的接口来处理不同的时钟类型,同时保持代码的灵活性和可扩展性。下面我们将深入探讨这个话题。 首先,让我们定义...
在C#编程语言中,多态性...通过基类构造函数传递参数,我们可以确保在初始化子类实例时,基类的数据成员也能得到正确的初始化。这不仅提高了代码的复用性,还降低了维护成本,使得程序更加易于理解和维护。
还有`ISerializable`用于序列化,`IInterface`作为所有接口的基类等。 10. 接口的高级应用: 接口可以用于实现事件处理、设计模式(如策略模式、观察者模式)、以及复杂的组件通信。通过接口,开发者可以创建灵活、...
本资源提供了使用C#实现串口通信的基类源码,允许开发者选择端口比特率,这在进行Rs232串口通信时非常关键。 Rs232,全称为Recommended Standard 232,是电子工业协会(EIA)制定的一种串行物理接口标准。它定义了...
当一个类含有纯虚函数时,该类被称为抽象类,不能直接实例化,但可以作为其他类的基类。抽象类的主要作用是定义一个接口,即规定了派生类必须实现的成员函数。例如,`CGraph`类的`GetVertexNumber()`如果被声明为...