抽象类
什么是抽象类?
abstract 修饰的类叫做抽象类,抽象类必须有子类继承.
什么是抽象方法?
使用abstract修饰的方法叫做抽象方法,抽象方法不能有具体的实现,子类必须重写。
特征
1: 抽象类不能实例化。
2: 抽象类中有抽象方法,子类必须重写。
3: 抽象类中可以有非抽象方法,不要求子类强制实现。
4: 如果一个类中,有抽象方法,那么这个类一定是抽象类。
5: 如果一个类是抽象类,这个类中不一定有抽象方法.
6: 在抽象类中写static 在语法上允许,但没必要.
代码
public abstract class Pet {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Pet() {
super();
}
public Pet(String name,) {
super();
this.name = name;
}
// 抽象类中有抽象方法。
public abstract void eat();
// 非抽象方法。
public void show(){
};
接口
什么是接口?
- 接口不是类,interface 修饰 一种数据类型。
1:接口很像抽象类
2:接口很像一个父类
public interface DemoInterface {
//接口中可以有属性
public static final int A = 10; //final 修饰的变量为常量,不能修改.变量名大写.
//接口中可以有抽象方法
public abstract void show();
}
public interface DemoInterface2 {
}
public abstract class DemoAbstract {
}
-
普通类 可以[实现]某个任意接口
-
Demo只能有一个父类,可以有很多个接口.
public class Demo extends DemoAbstract implements DemoInterface,DemoInterface2{
public void show(){
System.out.println("hello "+A);
}
}
- 接口中,可以有常量。使用static final 修饰的。默认被修饰。
- 接口中,可以有方法。使用abstract 修饰的。默认被修饰。
- 接口中,没有构造方法。
- 接口,不能被实例化。
一个类,如果实现两个接口,接口使用逗号分离,必须实现两个接口中所有的方法。
final关键字
- final : 最终的。不可改变的。
- final 修饰变量。表示常量,值不能再次赋值。常量要求全部大写。
- final 修饰方法。表示方法不能被重写。
- final 修饰类。表示类不能被继承。
- final 修饰对象,当前对象不能再new实例。
- String 就是被final修饰的类,不能被继承。