这样写一下.希望能明白我的白痴问题 class B { d c()//方法d,接口c {...} }1 class A extends B {...}与2 class A extends B implements c {...} 如果B的一个方法声明为接口c,那么1中如果继承了该方法,2中如果使用了接口改写了c 分开来说,是不是 1中的执行顺序A.d->B.d而且只能扩展不能改变? 2中的执行顺序B.d->A.d可以改写(如果不改写,就用方法1) 这样说是不是正确呢?我对Java和类的概念不清,还希望大家指点.谢
class B
{ d c()//方法d,接口c
{...}
}1 class A extends B
{...}与2 class A extends B implements c
{...}
如果B的一个方法声明为接口c,那么1中如果继承了该方法,2中如果使用了接口改写了c
分开来说,是不是
1中的执行顺序A.d->B.d而且只能扩展不能改变?
2中的执行顺序B.d->A.d可以改写(如果不改写,就用方法1)
这样说是不是正确呢?我对Java和类的概念不清,还希望大家指点.谢
B的一个方法声明为接口c,什么意思?
如果我没有理解错的话,java中的接口是一种特殊的类
这种类只有常量和方法定义,而没有变量和实现
因为Java是单继承的,所以如果你想让一个类有几个类的特点
必须将其他类声明为接口.对象不能声明为接口的对象!
而必须是声明为实现了接口方法的类的对象.
也就是说,你不可能有d c()//方法d,接口c的写法
而只能是d A()//方法d,类A
因此,你其他的问题不存在!
见下个帖子!
就面向对象的语言而言,个人认为,Java和C++还是存在一定差别的
你说的继承就是一个,Java中不存在多继承
接口就是实现类似与多继承的一种手段
一个java的类的通常写法是
class ClassName extends baseClass implements interface1,interface2,interface3...{
}
类所能继承的只能是一个类,而实现接口通常可以很多.
另外,java中所有的方法默认均为虚方法(C++中叫虚函数,而Java中不叫函数,我只能用这个名字了)
别的不写了,我也累了,哈哈!有事再交流,写的不对的地方,还请高手们指点!thx!