Java基础知识2

来源:互联网 发布:c语言for循环打印图形 编辑:程序博客网 时间:2024/06/05 14:24

1.什么是继承?

      继承是面向对象中的一个非常重要的特性。通过继承,子类可以使用父类中的一些成员变量与方法,从而能够提高代码的复用性,提高开发效率。继承主要有以下几个特性:
      1.java语言不支持多继承。子类最多只能有一个父类。但是可以有多接口。
      2.子类只能继承父类的非私有(public与protected)成员变量与方法。
      3.当子类中定义的成员变量和父类中定义的成员变量同名时,子类中的成员变量会覆盖父类中的成员变量,而不会继承。
      4.当子类中的方法与父类中的方法有相同的函数签名(相同的方法名,相同的参数个数与类型)时,子类将会覆盖父类的方法,而不是继承。

2.多态的实现机制是什么?

      多态是象程序设计中代码重用的一个重要机制,它表示当同一个操作作用在不同对象时,有不同的语义,从而产生不同的结果。多态主要有以下两种表现形式:
      1.方法的重载(overload)。重载是发生在同一个类中的,有多个同名的方法,但这些方法有着不同的参数,一次在编译时就可以确定到底调用那个方法。
          重载的规则 1、必须具有不同的参数列表;2、可以有不同的返回类型,只要参数列表不同就可以;3、可以有不同的访问修饰符;4、可以抛出不同的异常;5、方法能够在             一个类中或者在一个子类中被重载。
       2.方法的重写(覆盖 override)。子类可以覆盖父类的方法,因此同样的方法会在父类和子类中有着不同的变现形式。在java中,父类的引用变量不仅可以指向父类的实例对象,           也可以指向其子类的实例对象。接口的引用变量也可以指向其实现类的实例对象。而程序调用的方法在运行期才能动态绑定,就是引用变量所指向的具体实例对象的方法。方          法重写的规则:1、在子类中可以根据需要对从基类中继承来的方法进行重写。2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。3、重写方法不            能使用比被重写的方法更严格的访问权限。

3.抽象类与接口有什么异同?

      如果一个类中包含抽象方法,那么这个类就是抽象类。可以通过把类或者类中某些方法声明为abstract(abstract只能用来修饰类或方法,不能用来修饰属性)来表示抽象类。         接口       就是指一个方法的集合,接口中的所以方法都没有方法体,接口的关键字是interface。抽象类可以声明方法的存在而不去实现它,被声明为抽象的方法不能含有方         法体。在实现       时,必须包含相同或者更低级的访问级别。接口中所以得方法都是抽象的,可以通过接口来间接的实现多继承。接口中成员变量都是 static final类型。
      抽象类与接口的相同点:    
     1.都不能被实例化。  2.接口的实现类或者抽象类的子类都只有实现了接口或抽象类的方法后才能被实例化。
      抽象类与接口的不同点:
      1.接口中只有定义,其方法不能再接口中实现,只有实现接口的类才能实现接口中定义的方法,而抽象类可以有定义与实现,及其方法可以再抽象类中被实现。
      2.接口需要实现,但抽象类只能被继承。     3.接口强调特定功能的实现。其设计理念是“has-a”。而抽象类强调所属关系,其设计理念是“is-a”。
      4.接口中定义的成员变量默认为public static final,只能够有静态的不能被修改的数据,必须有初始值。成员方法都是public、abstract,只能被这两个关键字修饰。抽象类         可以有自己的数据成员变量,也有可以有非抽象的成员变量,而且抽象类中的成员变量默认为default(本包可见),当然可以定义为private、protected、public,这些成员变量可       以在子类中被重新定义,也可以被重新赋值。抽象中的抽象方法不能用private 、static 、synchronized 、 native等访问修饰符修饰,同时方法必须要以分号结尾,并且不带       花括号。5.接口被用于实现比较常用的功能,便于日后维护或者天剑删除方法,而抽象类更倾向于充当公共类得到角色,不适用与日后重新对里面的代码进行修改。

4.this与super有什么区别?

     this用来指向当对象实例,它的非常重要的作用就是用来区分对象的成员变量与方法的形参(当一个方法的形参与成员变量的名字相同时,就会覆盖成员变量)。
    super可以用来访问父类的方法或者成员变量。当子类的方法或者成员变量与父类有相同名字也会覆盖父类的方法或成员变量,要想访问父类的方法或成员变量只能通过               super关键字。

5.break、continue与return有什么区别?

     break用于直接强行跳出当前循环,不在执行剩下代码。在多重循环中它只是跳出当前循环,不影响外面循环的进行。
     continue用于停止当次循环,回到循环开始出,进入下一次循环。
     return语句是跳转语句,雨来表示一个方法返回(返回一个值或其他复杂类型),可以使程序控制返回到调用改方法来的地方。
 
原创粉丝点击