抽象方法:
abstract:抽象的。可以修饰方法和类。
抽象:模糊、不具体。
抽象方法
1.使用关键字abstract修饰。
2.抽象方法不可以有方法体。
3.抽象方法必须在抽象类中。
修饰符 abstract void 方法名();
抽象类:
修饰符 abstract class 类名{
}
1.抽象类中可以有属性。
2.抽象类中可以有普通方法。
3.抽象类中可以有抽象方法。
也可以没有。
4.子类继承抽象类:
1>子类必须重写抽象父类的所有抽象方法。
2>或者子类也为抽象类。
5.抽象类无法创建对象new自己。
不是因为抽象类没有构造方法,而是因为
一个抽象的模板 没有资格实例化。
创建对象必须使用多态的方式:
父类类型 对象 = new 子类类型();
**子类不能为抽象类。
6.抽象类可以继承抽象类,也可以继承普通类。
也是单根继承。
抽象类的存在,要求子类必须存在。否则无法创建该类型
对象,没有意义。
abstract:抽象的
abstract不可以和private、final、static连用。
final:最终的 最后的。关键字,访问修饰符。
final可以修饰类、方法、变量。
1.修饰的类无法被继承。
2.被final修饰的方法不可以被重写(覆盖)。
3.final修饰的变量为常量,不可以被更改。必须初始化。
1>在局部变量中,所有变量本来也需要初始化。
2>成员变量也需要初始化:
-->直接赋值初始化。
-->在构造方法中初始化成员变量。
public static final int NUMBER = 80;-->全局常量
常量的命名规则:
所有字母都大写,若由多个单词组成使用下划线隔开。
接口:
使用interface声明,也是.java文件中编译也是.class文件
语法:
public interface 接口名{
}
1.属性默认被public、static、final修饰。为全局常量。
2.方法默认被public、abstract修饰。
全都是抽象方法。
3.接口中没有构造方法。
4.类不可以继承接口,需要实现接口。
使用implements实现接口。
实现接口的类叫做实现类,并且可以实现多个接口。
1>实现类实现接口需要重写接口中的所有方法。
2>或者实现类为抽象类。
5.接口不可以实例化。
使用多态的方法创建对象。
接口名 对象 = new 实现类();
***实现类不可以为抽象类。
6.
1>接口不可以继承类。
2>接口可以继承接口,而且可以继承多个接口。
多个父接口之间用,连接。
3>实现类实现接口,需要实现类重写接口和
接口父接口中的所有方法。
7.一个类可以继承一个类的同时实现多个接口。
需要重写所有的抽象方法。
!!:
先继承后实现。
class A extends B implements IA,IB..{
}
接口和抽象类中的异同:
相同点:
1.都可以有抽象方法。
2.都无法实例化,需要子类(实现类)的存在。
父类<接口> 对象名 = new 子类<实现类>();
3.需要子类 或者实现类的存在,否则没有意义。
不同点:
1.抽象类中的属性和普通类一样。
接口中的属性默认被public static final修饰为全局常量。
2.抽象类中可以有普通方法,可以有抽象方法。
接口中的所有方法默认被public abstract修饰为 抽象方法。
3.抽象类的构造方法和普通类一样。
接口中没有构造方法。
4.接口声明 用interface
抽象类 abstract class
5.子类继承抽象类使用extends
实现类实现接口使用 implements
并且可以实现多个接口。
6.抽象类可以继承类,单根继承。
接口不可以继承类,可以继承接口,可以继承多个接口。
7.继承通常满足 is-a的关系,
接口不一定有。
4562

被折叠的 条评论
为什么被折叠?



