一般将不创建对象的父类设做抽象类,如人类,动物类,等
抽象类1.使用abstract关键字修饰的类
2.可以编写抽象方法
3.不能够创建对象
抽象方法1.使用abstract关键字修饰的方法
2.不能有方法实现
特征1.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类。
2.子类继承抽象类,必须实现所有抽象方法,否则子类也是一个抽象类。
public class D3Printer extends Printer {
@Override
public void printFile() {
System.out.println("3d打印");
}
}
3.构造方法和静态方法不能抽象。
4.抽象类可以有构造方法,子类可以在构造方法中使用super关键字调用。
5.抽象类可以使用内部实现的方式创建对象。
Printer p1 = new Printer() {
@Override
public void printFile() {
System.out.println("打印文件");
}
};
示例:
1、创建打印机抽象父类
package org.jgs2007.demo;
public abstract class Printer {
private String brand;
private String type;
public abstract void printFile();
public Printer() {
super();
}
public Printer(String brand, String type) {
super();
this.brand = brand;
this.type = type;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
2、创建3d打印机类
package org.jgs2007.demo;
public class D3Printer extends Printer {
@Override
public void printFile() {
System.out.println("3d打印");
}
}
接口
1.特征
1.声明接口使用interface关键字
public interface Lock{}
2.实现接口使用implements关键字
public class LockDoor implements Lock{}
3.接口中的方法默认使用public abstract修饰
void look();//默认使用public abstract修饰
4.接口不可以创建对象,但是可以通过内部实现的方式创建对象。
new Lock() {
@Override
public void unlock() {
// TODO Auto-generated method stub
}
@Override
public void lock() {
// TODO Auto-generated method stub
}
};
5.实现类必须实现所有抽象方法,否则该类是一个抽象类。
6.实现类可以实现多个接口。(java类单继承多实现)
public class LockDoor implements Lock, CatEyes {}
7.接口中的变量都是静态常量。(默认被public static final修饰)
String NAME = "防盗锁"; // public static final
8.接口也可以实现多态,使用接口引用指向实现类对象。
9.jdk1.8之后,接口可以有默认实现的方法、静态方法。
3.作用1.表示一种能力
2.表示一种规范
4.接口的分类1.普通接口:静态常量、抽象方法
2.标识接口:没有任何内容,标识一种能力,例如:java.io.Serializable
3.函数接口:只有一个抽象方法



