JAVA类的继承,封装,多态,以及接口的一些信息

原创 2015年11月21日 01:34:07
JAVA类的相关信息:


1.类的继承,Java只支持单一继承,也就是只有一个父类,利用extends 关键字继承,例如:
class A{ };
class B extends A{ };
class C extends A,B{ };//这是错误的,不能同时继承多个父类;
但是Java中允许多层继承:
class A{ };
class B extends A{ };
class C extends B{ };


2.如果在子类中重写了父类的方法后,要再次使用父类的方法,那么要用super.方法名();


3.如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键字调用重载的
其它构造方法,则系统默认调用父类无参数的构造方法,相当于省略了super();语句


4.在子类的构造方法中可使用语句super(argument_list)调用父类的构造方法,但必须作
为构造方法的第一条句。


5.用关键字abstract修饰的类称为abstract类(抽象类);
   它的特点:和普通类相比,abstract类可以有abstract方法。对于abstract方法,只允许声明,
不允许实现,而且不允许使用final修饰abstract方法。对于abstract类,我们不能使用new运算
符创建该类的对象,需产生其子类,由子类创建对象,如果一个类是abstract类的子类,它必须
具体实现父类的abstract方法,这就是为什么不允许使用final修饰abstract方法的原因。


6.接口声明:接口与类属于同一层次,实际上,接口是一种特殊的抽象类。在Java中接口定义同类
的定义很相似,分为接口声明和接口体两部分。接口通过interface关键字声明,接口体中只能包
含全局常量和抽象方法,接口的变量自动是public static final属性,接口中的方法自动是
public abstract属性,并没有方法体,以分号结尾。
格式: [public] interface 接口名 [extends 父接口名表]{ 接口体;}
接口体包含常量定义和方法定义,
 
例如:
 
interface IA{
 
   public static final int MAX=100; //全局常量
 
   public void print();  //抽象方法
 
   public abstract int sum();    //抽象方法
 
}
 
注:
 
1)   public interface:公开接口,与类相似,一个文件只能有一个public接口,且与文件名相同。
 
2)   在一个文件中不可同时定义一个public接口和一个public类。
 
3)   接口和接口之间可以定义继承关系,并且接口之间允许实现多重继承。
例:interface IC extends IA,IB{   };//允许多重实现


7.一个类除了继承另一个类之外,还能实现接口:例如
class IAImpl extends java.util.Arrylist implement IA,IB{}
1)   一个类实现了某个接口,则必须实现接口中的所有方法,如果没有实现接口中的所有方法,
则此类一定是抽象类。因为一个类实现接口,相当于它继承一个抽象类。
 
2)   接口中方法可不写public,但在子类中实现接口的过程中public不可省。(如果省去public则
在编译的时候提示出错:对象无法从接口中实现方法,相当于降低了重写方法的权限。)


3)   如果父类实现了某个接口,子类不需要使用implements关键字声明就可以使用此接口。
 
4)   接口也可以用于定义对象


接口使用案例:
interface IDetail{  
       public String detail();  
}  
class Teacher implements IDetail {  
       private String name;  
       private int age;  
       private String type;  
       public Teacher(String name, int age, String type) {  
              this.name = name;  
              this.age = age;  
              this.type = type;  
       }  
      // 返回教师详细信息  
       public String detail() {  
              return "姓名:" + name + ",年龄:" + age + ",教师类型:" + type;  
       }  
}  
class Printer {  
       public void print(String s) {  
              System.out.println(s);  
       }  
}   
class MedicalInspection implements IDetail{  
   
       Printer printer = new Printer();  
       // 返回体检中心信息  
       public String detail() {  
              return "这里是滨州市体检中心,欢迎您的到来!";  
       }  
   
       // 打印detail信息  
       public void printDetail(IDetail d) {  
              printer.print(d.detail());  
       }  
}  
public class ExDemon03 {  
   
       public static void main(String[] args) {  
   
              MedicalInspection mi=new MedicalInspection();  
              IDetail t = new Teacher("李四", 33, "Java");  
   
              mi.printDetail();// 打印教师信息  
                mi.printDetail(mi);// 打印中心信息  
       }  
}  
版权声明:本文为博主原创文章,未经博主允许不得转载。

java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍

java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍,this,super,构造方法的使用介绍...
  • qq_22118507
  • qq_22118507
  • 2016年05月16日 09:45
  • 7425

黑马程序员_java基础-封装继承多态

面向对象的三大特征:封装 继承 多态. 一.简述面象对象 面向对象就是采用”现实模拟”的方法设计和开发程序. 面向对象技术利用”面向对象的思想”去描述面象对象的世界,实现了虚拟世界和现实世界的一致性,...
  • zhengylsc
  • zhengylsc
  • 2013年11月23日 15:57
  • 9730

Java三大特性——继承,封装和多态

总结Java三大特性:继承、封装和多态
  • SummerInnPhuket
  • SummerInnPhuket
  • 2016年02月18日 21:08
  • 3337

Java封装、继承和多态

前言:假如生活欺骗了你,
  • wu371894545
  • wu371894545
  • 2016年11月24日 10:19
  • 11310

对封装、抽象、继承、多态的理解?(java四大特性)

封装是把过程和数据包围起来,对数据的访问只能通过自定义的接口,这个可以保护里面的数据和结构不被修改。继承是实现代码复用的重要手段,Java的继承具有单继承的特点,每一个子类只允许有一个父类。通过继承子...
  • u014316462
  • u014316462
  • 2016年07月23日 21:39
  • 2627

OC学习篇之---类的三大特性(封装,继承,多态)

之前的一片文章介绍了OC中类的初始化方法和点语法的使用:http://blog.csdn.net/jiangwei0910410003/article/details/41683873,今天来继续学习...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014年12月04日 22:20
  • 30903

1.面向对象编程思想(封装继承多态接口)

封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一...
  • u014252871
  • u014252871
  • 2016年11月28日 09:22
  • 2066

【面试题】Java三大特性封装继承多态总结

本文内容总结于多篇博客,参考到的地方在文中都会一一列出 http://www.cnblogs.com/ibalintha/p/3897821.html 1.封装 封装...
  • zjkC050818
  • zjkC050818
  • 2017年10月18日 22:15
  • 421

七:Java之封装、抽象、多态和继承

本文章介绍了关于Java中的面向对象封装、抽象、继承、多态特点 Java面向对象主要有四大特性:封装、抽象、继承和多态。...
  • u010893129
  • u010893129
  • 2014年06月28日 15:22
  • 2988

GO语言中封装,继承,和多态

封装go中的封装和java的不太一样,在go里面是没有java中的class,不过可以把struct看成一个类,封装可以简单地看作对struct的封装,如下type obj1 struct { ...
  • Yan_Chou
  • Yan_Chou
  • 2017年01月10日 00:04
  • 2893
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA类的继承,封装,多态,以及接口的一些信息
举报原因:
原因补充:

(最多只允许输入30个字)