所以我的目标是为pagesRead()实例变量和typeHomework实例变量创建一个方法,但是当我尝试这个时,我得到一个错误,说他们缺少方法或声明抽象。如果有人可以帮我解决这个问题,或者把我发给另一个类似的问题,那就太好了,谢谢。
public abstract class homework {
public int pagesRead();
public String typeHomework();
public abstract void createAssignment(int p) {
return null;
}
}
答案 0 :(得分:2)
您正在寻找的应该是:
public abstract class homework {
abstract int pagesRead();
abstract String typeHomework();
public void createAssignment(int p) {
//
}
}
你颠倒了一切。
答案 1 :(得分:1)
试试这个:
public abstract class homework
{
public abstract int pagesRead();//abstract
public abstract String typeHomework();//abstract
public abstract void createAssignment(int p);//since it is an abstract you can't create a body
}
答案 2 :(得分:0)
首先,抽象方法无法实现。
您的代码应为
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_COMMAND(ID_SLIDER, OnSlider)
ON_COMMAND(ID_VIEW_CUSTOMIZE, OnViewCustomize)
ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset)
ON_REGISTERED_MESSAGE(AFX_WM_TOOLBARMENU, OnToolbarContextMenu)
ON_UPDATE_COMMAND_UI_RANGE(ID_LAYERS_1, ID_LAYERS_3, OnUpdateLayers)
ON_COMMAND_RANGE(ID_LAYERS_1, ID_LAYERS_3, OnLayers)
END_MESSAGE_MAP()
CMFCToolBarMenuButton* CreateLayerButton()
{
CMenu menu;
VERIFY(menu.LoadMenu(IDR_LAYERS));
CMFCToolBarMenuButton* pLayerButton = NULL;
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
if (pPopup != NULL)
{
HMENU hMenu = pPopup->GetSafeHmenu();
pLayerButton = new CMFCToolBarMenuButton(ID_LAYERS_1, hMenu, -1, NULL, FALSE);
}
return pLayerButton;
}
afx_msg LRESULT CMainFrame::OnToolbarReset(WPARAM wp, LPARAM)
{
UINT uiToolBarId = (UINT)wp;
if (uiToolBarId == IDR_MAINFRAME)
{
CSliderButton btnSlider(ID_SLIDER);
btnSlider.SetRange(0, 100);
m_wndToolBar.ReplaceButton(ID_SLIDER, btnSlider);
// layer button/menu
CMFCToolBarMenuButton* pLayerButton = CreateLayerButton();
m_wndToolBar.ReplaceButton(ID_LAYERS_1, *pLayerButton);
delete pLayerButton;
}
return 0;
}
void CMainFrame::OnUpdateLayers(CCmdUI* pCmdUI)
{
//pCmdUI->SetCheck(true);
}
void CMainFrame::OnLayers(UINT id)
{
}
答案 3 :(得分:0)
你的意思是创建班级成员吗?那就是pagesRead和typeHomework应该是类Homework的元素而不是方法?如果是这样,那么以下是正确的方法
public class Homework{
public int pagesRead;
public String typeHomework;
public void createAssignment(int p)
{ return null; }
}
答案 4 :(得分:0)
您在抽象类中声明的内容是相反的。 1)声明非抽象方法 2)给出抽象方法的实现
You should
1) Declared abstract methods
2) given implementation for non abstract methods