A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毕博 中级黑马   /  2012-4-25 07:45  /  2118 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

5 个回复

倒序浏览
接口可以继承接口。抽象类可以实现(implements)接口,抽象类是可继承具体类。抽象类中可以有静态的main方法。
记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。
回复 使用道具 举报
本帖最后由 Friends★ 于 2012-4-25 08:24 编辑

1、接口是可以继承的,但是类与接口之间只能是实现。
2、抽象类也是可以实现接口的,可以定义接口中的方法为实体方法时就可以实现了。
3、抽象类可以继承具体的类
4、抽象类中可以有静态方法
回复 使用道具 举报
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
1、接口当然可以继承接口了,例如:接口A有抽象方法b,接口C它有抽象方法b、d..。那他们的共性特征就可以抽取出,所以接口C继承接口A即可;
2、implements关键字只用于类与接口之间的实现关系;
3、抽象类可以继承具体类,这很容易想,根类Object有好多抽象子类;
4、可以有静态main方法;main方法也就一个普通的方法,抽象类与类的区别可以有抽象方法,不被外部实例化;
回复 使用道具 举报
interface Inter
{
        public static final int NUM = 3;
        public abstract void show();
}

interface InterA
{
        public abstract void show();
}

class Demo
{
        public void function(){}
}

class Test extends Demo implements Inter,InterA
{
        public void show(){}
}


interface A
{
        void methodA();
}
interface B //extends A
{
        void methodB();
}

interface C extends B,A//接口可以继承接口
{
        void methodC();
}

class D implements C
{
        public void methodA(){}
        public void methodC(){}
        public void methodB(){}
}


class InterfaceDemo
{
        public static void main(String[] args)
        {
                Test t = new Test();
                System.out.println(t.NUM);
                System.out.println(Test.NUM);
                System.out.println(Inter.NUM);

        }
}
抽象类和接口的区别:
   1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
  2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过 在 interface中一般不定义数据成员),所有的成员方法都是abstract的。
  3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。
  4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。
  5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
  6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
  7.接口中的方法默认都是 public,abstract 类型的。
回复 使用道具 举报
明确抽象类和一般类没有太大的不同。该如何描述事物,就如何描述事物,只不过,抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。抽象类不可以实例化。
因此抽象类可实现接口,抽象类是否可继承具体类,抽象类中也可以有静态的main方法;
接口与接口直接是继承关系,而且接口间存在多继承。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马