Java抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.java抽象并不打算了解全部
问题,而只是选择其中的一部分,暂时不用部分细节.java抽象包括两个方面,一是过程java抽象,二是数据java抽象.
抽象类中的抽象方法的语法:
abstract type methodname(parameter list); 无方法体,必须加abstract
而接口中则是声明方法:
(abstract)(public) type methodname(parameter list); public 和abstract可写可不写
实现接口的类可以不必实现接口中的所有方法 这是对的 但这样的话 实现类也必须是抽象的
抽象类的子类如果不实现抽象方法 子类必须也是抽象的(不是抽象的方法 子类也是要继承的 除非是不允许继承的,例如private).
例程序代码片段:
abstract class Person{
public Person(String n){
name = n;
}
public abstract String getDescription();
public String getName(){
return name;
}
private String name = "";
}
继承实现代码复用。Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的类称为父类。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。但Java不支持多重继承,即一个类从多个超类派生的能力。
代码片段:
Class Employee extends Person{
......
//可以有自己定义的方法,可以重写父类的方法
}
Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口的两种含义:一,Java接口,
Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
代码片段
public interface IPerson{
public String getPersons(int pageNo, int pageSize, String str);
public String getPerson(Integer id);
}
运行时多态性是面向对象
程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制。
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的
定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
代码片段:
public class PersonOperations
{
public String getPersons()
{
return "personname";
}
public String getPersons(int id)
{
//处理方法
}
}
形象解释:
1、什么是封装?
比如车子,一般都有轮子,它是一个抽象的东