一、抽象类
1、注意事项
1、有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。
2、用abstract关键字来修饰一个类时,这个类叫做抽象类。
3、用abstract来修饰一个方法时,该方法叫做抽象方法。抽象方法:只有方法的声明,没有方法的实现。以分号结束。
4、含有抽象方法的类必须被声明为抽象类。
5、抽象类不能被实例化。抽象类是用来作为父类被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。
6、抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体
7、不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法。
2、代码演示
package scanner;
//父类
public abstract class Person{
//抽象类只有方法没有方法实现
public abstract void say();
}
package scanner;
//抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。
//抽象类可以写普通方法,抽象方法必须再抽象类中。
public class A extends Person {
@Override
public void say() {
}
}
二、接口
1、接口的特点
1、用interface来定义。
2、接口中的所有成员变量都默认是由public static final修饰的。
3、接口中的所有方法都默认是由public abstract修饰的。
4、接口没有构造器。
5、接口采用多层继承机制。
2、注意事项
1、有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。
2、接口(interface)是抽象方法和常量值的定义的集合。
3、从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
4、实现接口类:
class SubClass implements InterfaceA{ }
5、一个类可以实现多个接口,接口也可以继承其它接口。
6、实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化。否则,仍为抽象类。
7、与继承关系类似,接口与实现类之间存在多态性
3、代码演示
结果: