Java面向对象思想

三大特性:继承,封装,多态java

继承在Java中不支持多继承,因此通常大多状况下使用接口

关键字extendthis

class 父类 { }
class 子类 extends 父类 { }

重写: 子类能够根据须要,定义特定于本身的行为。 也就是说子类可以根据须要实现父类的方法。spa

重载: 在一个类里面,方法名字相同,而参数不一样。返回类型能够相同也能够不一样。 通常用于构造器的重载指针

 

多态:水果包括苹果,梨,香蕉及其余类型

 

封装:外部只能访问属性,不能修改属性

public int getAge(){ return age; } ​ 对象

​public void setAge(int age){ this.age = age; } ​继承

 

抽象类,抽象方法:关键字 abstract

  • 1. 抽象类不能被实例化(初学者很容易犯的错),若是被实例化,就会报错,编译没法经过。只有抽象类的非抽象子类能够建立对象。接口

  • 2. 抽象类中不必定包含抽象方法,可是有抽象方法的类一定是抽象类。get

  • 3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。编译

  • 4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。class

  • 5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却能够实现多个接口。

抽象类中的方法默认为抽象方法

 

接口

一般以interface来声明。一个类经过继承接口的方式,从而来继承接口的抽象方法。

接口并非类,编写接口的方式和类很类似,可是它们属于不一样的概念。接口则包含类要实现的方法。

接口没法被实例化,可是能够被实现。一个实现接口的类,必须实现接口内所描述的全部方法,不然就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们能够成为一个空指针,或是被绑定在一个以此接口实现的对象(??)。

接口与类类似点:

  • 一个接口能够有多个方法。
  • 接口文件保存在 .java 结尾的文件中,文件名使用接口名。
  • 接口的字节码文件保存在 .class 结尾的文件中。
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中。

接口与类的区别:

  • 接口不能用于实例化对象。
  • 接口没有构造方法。
  • 接口中全部的方法必须是抽象方法。
  • 接口不能包含成员变量,除了 static 和 final 变量(全局变量)。
  • 接口不是被类继承了,而是要被类实现。
  • 接口支持多继承

接口特性

  • 接口中每个方法也是隐式抽象的,接口中的方法会被隐式的指定public abstract(只能是 public abstract,其余修饰符都会报错)。
  • 接口中能够含有变量,可是接口中的变量会被隐式的指定为 public static final 变量(而且只能是 public,用 private 修饰会报编译错误)。
  • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

抽象类和接口的区别

  • 1. 抽象类中的方法能够有方法体,就是能实现方法的具体功能,可是接口中的方法不行。
  • 2. 抽象类中的成员变量能够是各类类型的,而接口中的成员变量只能是 public static final 类型的。
  • 3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是能够有静态代码块和静态方法。
  • 4. 一个类只能继承一个抽象类,而一个类却能够实现多个接口。
相关文章
相关标签/搜索