黑马程序员技术交流社区
标题: 问关于抽象类的一个小问题。 [打印本页]
作者: 丁朋 时间: 2012-7-15 13:26
标题: 问关于抽象类的一个小问题。
本帖最后由 丁朋 于 2012-7-15 20:38 编辑
抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用。
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
这是我记的笔记,想问下,父类有n个方法,子类只复写了其中的n-1个方法,子类一定是一个抽象类吗?
还是有特例?
就是
public abstract class Student
{
method1(){}
method1(){}
}
public class StudentDemo extends Student
{
method1(){}//只复写父类的方法
}
那么public class StudentDemo extends Student这句话我这样写可以吗?
还是一定要public abstract class StudentDemo extends Student这样写。
有点疑惑,是一定还是可以不?
作者: 包晗 时间: 2012-7-15 13:31
本帖最后由 包晗 于 2012-7-15 13:51 编辑
public abstract class Student
{
method1(){}
method1(){}
}
public class StudentDemo extends Student
{
method1(){}//只复写父类的方法
}
抽象类里 抽象方法前 加一个abstract
带码中的method1(){} 写成 abstact method1() ;
分号一定要加上
public class StudentDemo extends Student
public abstract class StudentDemo extends Student
继承一个抽象类且抽象类里有抽象方法 子类也会抽象了
子类也要 写上 abstract
顺道说一下 你可能赶时间漏了
抽象类
抽象类里 需要设定返回值类型
希望对你有帮助
12期我来了
作者: 全海波 时间: 2012-7-15 13:37
你只复写了父类的一个抽象方法,子类还是一个抽象类,一定要加一个abstract
作者: 李敬 时间: 2012-7-15 13:40
1、抽象类可以不包括抽象方法.
2、但是含有抽象方法的类绝不能被实例化.
3、如果子类是非抽象的,那么它就必须实现父类中的抽象方法;否则,它继承来的抽象方法仍然是个抽象方法.
作者: 苑占丽 时间: 2012-7-15 13:51
public abstract class Student
{
method1(){}
method1(){}
//ru如果这样定义的话,你的意思就是这个抽象类中你并没有定义抽象方法,而是普通的方法,当然毕老师说过这是允许的,这样做仅仅是不让该类建立对象。 }
public class StudentDemo extends Student
{
method1(){}//只复写父类的方法//而由于抽象父类中并没有抽象方法,当然也没抽象方法让子类去复写呀,所以public class StudentDemo extends Student一定要这样写呀
}
作者: 韩伟 时间: 2012-7-15 14:55
public abstract class Student
{
method1(){} //这不是抽象方法,抽象方法必须加abstract关键字,且后面要加“;”,而且不能有函数体。此处应该写 abstract method1();
method1(){} //我想这个可能是LZ笔误写错了,这个函数名和上一个是一样的,参数也相同,不能构成重载。LZ可能是要写abstract method2();
}
public class StudentDemo extends Student
{
method1(){}//只复写父类的方法
//子类继承父类时,会继承父类所有的非私有的方法,且对父类中的抽象方法要定义方法体。按照楼主所说,没有对所有的抽象方法定义方法体,
//那么就以为着子类中还有抽象方法,那么子类必须要定义为抽象类。
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |