抽象类的知识点
全磊磊
抽象类的学习总结
抽象类(1)
• 在定义 Java 方法时可以只给出方法头,而不必给出方法体、即方法实现
的细节,这样的方法被称为抽象方法。
• 抽象方法必须使用关键字 abstract 修饰,包含抽象方法的类必须声明为
抽象类。
• Public abstract class Animal{
•
•
•
•
•
•
•
•
private int age;
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public abstract void cry();
• }
抽象类(2)
• Public class bird extends Animal{
• public void cry(){//重写方法
20091214
1
System.out.println(“ji,ji”);
全磊磊
抽象类的知识点
•
•
• }
}
• Public class Dog extends Animal{
• public void cry(){//重写方法。
System.out.println(“wang wang”);
•
•
• }
}
抽象类(3)
• Java 语言规定,子类必须实现其父类中的所有抽象方法,否则该子类也只
能声明为抽象类。
• 抽象类不能被实例化。
抽象类(4)
• 抽象类主要是通过继承、再由其子类发挥作用的,其作用包括两方面:
• 代码重用
• 规划
• 其他特性:
• 抽象类中可以不包含抽象方法;
• 子类中可以不全部实现抽象父类中的抽象方法,但此时子类也只能声明为
抽象类;
• 父类不是抽象类, 但在子类中可以添加抽象方法, 但子类需声明为抽象类;
• 抽象类中可以声明 static 属性和方法;
接口
20091214
2
抽象类的知识点
全磊磊
• 接口(interface)是抽象方法和常量值的定义的集合。
• 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法
的定义,而没有变量和方法的实现。
• 接口举例:
• Public interface Swimer{
•
•
•
•
public static final int id=1;
public abstract void ready();
public abstract void swim();
public abstract void stop();
• }
接口(2)
• 接口中定义的属性必须是 public static final 的,而接口中定义的方法
则必须是 public abstract 的,因此这些修饰符可以部分或全部省略:
• 和继承关系类似,java 类可以“实现”接口,且接口和实现类之间也存在
多态性。
•
[]class
[extends][implements
[,]*]{
•
*
• }
接口的多重实现(1)
•
•
Interface Runner{
public void run();
• }
20091214
3
全磊磊
抽象类的知识点
•
•
Interface Swimmer{
public void swim();
• }
• Abstract class Animal{
•
public abstract void eat();
• }
• Class Person extends Animal implements Runner,Swimmer{
•
•
•
•
•
•
•
•
•
public void run(){
System.out.println(“我在跑步”);
}
public void swim(){
System.out.println(“我游泳”);
}
Publci void eat(){
System.out.println(“我在吃东西”);
}
• }
接口间的继承
•
•
Interface A{
public void ma();
• }
•
•
Interface B{
public int mb(int i);
20091214
4
全磊磊
抽象类的知识点
• }
•
•
Interface C extends A,B{
public String mc();
• }
• Class D implements C{
public void ma(){
System.out.println(“接口 a”);
}
public void mb(int i){
return 2000+i;
}
public String mc(){
return “Hello!”;
}
•
•
•
•
•
•
•
•
•
• }
20091214
5