抽象类的定义与使用

 1 abstract class Action {
 2  public static final int ECT=1;
 3  public static final int WROLD=2;
 4  public static final int Sleep=7;
 5  public void cmmand(int fag){
 6     switch (fag)
 7     {
 8     case ECT:{
 9      this.ect();
10     break;}
11     case WROLD:{
12       this.wrold();
13       break;
14               }
15     case Sleep:{
16       this.sleep();
17       break;
18       }
19     }
20     }
21  public abstract void ect();
22  public abstract void wrold();
23  public abstract void sleep();
24 }
25 class roblt extends Action{
26     public void ect(){
27     System.out.println("正在吃饭中");
28     }
29     public void wrold(){
30     System.out.println("正在工作中");
31     }
32     public void sleep(){}
33 }
34 class human extends Action{
35     public void ect(){
36     System.out.println("正在吃饭中");
37     }
38     public void wrold(){
39     System.out.println("正在工作中");
40     }
41     public void sleep(){
42     System.out.println("正在睡觉中");
43     }
44 }
45 class pig extends Action{
46     public void ect(){
47     System.out.println("正在吃饭中");
48     }
49     public void wrold(){}
50     public void sleep(){
51     System.out.println("正在睡觉中");
52     }
53 }
54 public class Noname1
55 {public static void main(String args[]){
56    System.out.println("**********猪*********");
57    fun(new pig());
58     System.out.println("********人**********");
59     fun(new human());
60     System.out.println("********机器人*****");
61     fun(new roblt());
62    }
63 public static void fun(Action act){
64    act.ect();
65    act.wrold();
66    act.sleep();
67    }
68 }
时间: 2024-10-12 16:46:11

抽象类的定义与使用的相关文章

抽象类中定义纯虚函数

首先看一段代码: class Instrument { public: virtual void play()const=0//非法的定义在抽象类中定义纯虚函数 { cout<<"Instrument Play\n"; } }; class Wind:public Instrument { void play( )const { cout<<"Wind Play\n"; } }; void main() { Wind s; Instrumen

抽象类与接口的区别

抽象类的定义: 成员属性:可以是变量,也可以是常量 成员方法:可以抽象,也可以非抽象(比如:构造方法是一定会有的) 接口类的定义: 成员属性:只能是常量(public static final) 成员方法:只能是抽象(接口没有构造方法,像太监没有小JJ) 多态的区别: 类与类: 继承,单一继承(亲爹只有一个) 类与接口: 实现,单一.多重实现(可以认多个干爹) 接口与接口: 继承,单一.多重继承(可以认多个干爹) 设计理念区别: 抽象类被继承体现的是:"is a"的关系.抽象类中定义的

Java 接口和抽象类区别

1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽象,我就不能不提到曾让我头痛的Java接口和Java抽象类了,这也是本文我想说的重点. 既然面向对象设计的重点在于

C#中接口和抽象类的区别

什么是接口? 用来定义一种程序的协定.实现接口的类或者结构要与接口的定义严格一致.有了这个协定,就可以抛开编程语言的限制(理论上).C#接口可以从多个基接口继承,而类或结构可以实现多个接口.C#接口可以包含方法.属性.事件和索引器.接口本身不提供它所定义的成员的实现.接口只指定实现该接口的类或接口必须提供的成员. 如何使用接口? 例如: <span style="font-family:KaiTi_GB2312;">using System; using System.Co

抽象类与接口分析

抽象类: 定义:包含抽象方法的类称为抽象类. 语法:抽象类和抽象方法都必须用abstract声明 抽象类可声明但不可直接实例化,抽象类的实例化必须依靠子类继承来完成. 抽象类中可包含构造方法,但依靠子类调用. 代码示例: abstract class A{ public A(){ // 构造方法 System.out.println("*************************") ; } public abstract void fun() ; }; class B exte

C#OOP之八 继承 接口和抽象类

继承 在现实生活中有所谓的"种瓜得瓜.种豆得豆"的说法,在生物学概念上就是"遗传"的概念,在面向对象中"继承"就类似于生物学中的遗传,通过继承,可以更好的实现代码的重用(复用,多次使用的意思).增加扩展性.简化代码等. 下面是现实生活中的引用: 定义与使用继承 继承一次最常用的就是通过合法程序(比如遗嘱)从别人那里接受财产或爵位等,有点类似于世袭制. 另外一个含义,是人从父母那里继承一些特征,如果孩子从父母继承的身高.相貌等特征.那么在什么情况下

抽象类

什么是抽象类? 定义为抽象的类不能被实例化. 任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的. 被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现. 抽象关键字 :abstract 抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字. 抽象方法和抽象类的定义 一个类中至少有一个方法是抽象的,我们称之为抽象类.所以如果定义抽象类首先定义抽象方法. 1.类中至少有一个抽象方法

结合具体项目谈谈对抽象类的理解

抽象类面向对象的语言中经常使用的类,网上也有各种各样的剖析,大致上都是做了以下方面的对比:1 抽象类和普通类的区别.2 抽象类和接口的区别. 3 抽象类中的虚方法和抽象方法的区别,首先去找到这些重大的区别,然后针对具体的项目来谈谈对这些概念的理解. 1 抽象类和普通类 A.都可以被继承 . B.抽象类不能被实例化,只是用来继承的,普通类可以实例化. C.抽象方法只有含方法声明而没有方法体且必须包含在抽象类里面. D.子类继承抽象类必须实现抽象类中的抽象方法除非子类也是抽象类. E.抽象类中可以包

抽象类与接口

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 一.抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类.比如new Animal