鸟哥Java学习之抽象类、接口-面向对象

原创 2016年06月01日 20:47:55
1.方法只有声明没有实现时,就是抽象方法,用abstract修饰。格式:abstract void 函数名();抽象方法必须定义在抽象类中。抽象类不可以被实例化。(当一个类没有足够的信息描述事物,不具体,这个类就是抽象的,但这个类里可能有些信息不是抽象的,可能只是某些功能是抽象的。)

2.抽象类必须有其子类覆盖所有抽象方法后,子类才能被实例化;
    抽象类中有构造函数,用于给子类对象进行初始化;
    抽象类可以不定义抽象方法,少见,目的就是不让该类创建对象,AWT的适配器对象就是这种类。通常这个类中有方法体,但是却没有内容。 
    抽象类关键字不可以和private、static、final关键字共存。
    抽象类一定是个父类
/*
雇员实例:
需求:
公司中4程序员,姓名,工号,薪水,工作内容
项目经理,以上还有奖金
对给出需求进行数据建模。
 
分析:
1.对象:
程序员:
属性:。。。
行为:工作
经理:
属性:。。。,奖金
行为:工作
两对象不存在直接继承关系,但有共性,可以进行抽取,建立体系。
*/
 
 
abstract class employee
{
private String name;
private String id;
private double pay;
employee(String name,String id,double pay)
{
this.name=name;
this.id=id;
this.pay=pay;
}
public String getname()
{
return name;
}
public abstract void work();
 
}
class programer extends employee
{
programer(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("recode");
}
}
class manager extends employee
{
manager(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("manage");
}
}
 
 
 
class AbstractTest
{
public static void main(String[] args)
{
programer pro = new programer("hujiaojiao","100",5000);
manager man = new manager("hujiaojiao","10",8000);
pro.work();
man.work();
System.out.println(pro.getname()+","+man.getname());
}
}
3.抽象类中方法全是抽象时,可以用另一种形式定义,用接口interface。
    定义接口使用关键字不是class,是interface。
    接口当中常见的成员,而且这些长远都有固定的修饰符(可以省略,但阅读性差)。接口中的成员都是公共的权限。
        全局常量:public static final
        抽象方法:public abstract

4.接口功能1-多实现
    类与类间是继承关系,类与接口间是实现关系,格式:class 类名 implements 类名。
    接口不可以实例化只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化,否则,这个子类就是一个抽象类。
    Java不直接支持多继承(方法体,导致调用不确定),多继承机制改良,变成多实现,一个类可以实现多个接口(因为无方法体)

5.功能2-一个类在继承另一个类的同时,还可以实现多个接口。避免单继承的局限性。
    接口与接口间是继承关系,而且接口可以多继承。

6.抽象类的继承在定义该体系的基本共性内容
    接口的实现在定义体系的额外功能。.

7.接口类型的引用用于接收(指向)接口的子类对象。
版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

Java抽象类与接口学习心得

Java抽象类的“三必须” 与 “五不能” ,抽象类与接口联系玉区别;
  • zhangliangzi
  • zhangliangzi
  • 2015年11月23日 17:17
  • 1081

面向对象中接口和抽象类的区别

从表象上来说: 1、抽象类可以给出一些成员的实现,接口却不包含成员的实现; 2、抽象类的抽象成员可被子类部分实现,接口的成员需要实现类完全实现; 3、一个类只能继承一个抽象类,但可以实现多...
  • u010784236
  • u010784236
  • 2015年01月23日 17:53
  • 1601

面向对象与Java实现(抽象类、接口

  • 2012年05月14日 13:12
  • 177KB
  • 下载

Java基础07天 学习笔记_面向对象(继承,final关键字,抽象类,接口)

001 002 继承概述 寻找对象直接的关系,并提取共性,单独进行描述。 classPerson { String name; int age; }   classStude...
  • fafrifa
  • fafrifa
  • 2014年09月01日 14:04
  • 257

3.java面向对象语法学习(部分2-抽象类,接口,内部类)

  • Small_Mouse0
  • Small_Mouse0
  • 2016年12月29日 18:02
  • 6393

Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解

抽象类、接口常常与设计模式紧密相连。掌握抽象类、接口等其实很简单。下面以说明+实例的方式来讲,这样更容易理解。 抽象类 先看一个关键字“abstract”,我们知道它是抽象的意思。所谓抽象,说的直白一...
  • JAVE_LOVER
  • JAVE_LOVER
  • 2013年09月24日 16:00
  • 2198

Java学习系列(五)Java面向对象之抽象类、接口、内部类、枚举类详解

抽象类、接口常常与设计模式紧密相连。掌握抽象类、接口等其实很简单。下面以说明+实例的方式来讲,这样更容易理解。 抽象类 先看一个关键字“abstract”,我们知道它是抽象的意思。所谓抽象...
  • xuxu198899223
  • xuxu198899223
  • 2014年04月25日 11:17
  • 496

Java重修之路(九)面向对象之final关键字,抽象类(abstract),接口(interface)

final关键字 首先明确,继承的出现打破了封装性,子类继承了父类,就能获得父类的属性和方法,有些封装好的东西就会全部暴露,不安全。所以对于一些特殊的类,为了强制保证其封装性,用final修饰,不...
  • Momentyol
  • Momentyol
  • 2016年11月04日 20:28
  • 272

黑马程序员--JAVA<面向对象>--构造函数、抽象类、接口、多态

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------...
  • u011544642
  • u011544642
  • 2013年07月29日 18:41
  • 680
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:鸟哥Java学习之抽象类、接口-面向对象
举报原因:
原因补充:

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