java心得(抽象类和接口)

来源:互联网 发布:淘宝网品牌羽绒服 编辑:程序博客网 时间:2024/05/17 04:52

一.抽象类

1.1定义:在定义Java方法时可以只给出方法头,而不必给出方法体、即方法的实现细节,这样的方法称抽象方法。
抽象方法必须使用关键字abstract修饰,包含抽象方法的类必须声明为抽象类。

public abstract class Person {
String name;
int age;
//抽象方法
public abstract void eat();

//具体方法
public void sleep() {
System.out.println("睡觉");
}
}

public class Student extends Chinese{
@Override
public void eat() {
system.out.println("吃自己做的饭");
}
}

因为人这个类的吃饭方法永远会被子类学生方法重写覆盖,也就是人这个吃饭这个方法写多少内容都不会显示出来,也就是多余的,所以去到,就变成抽象类。

1.2特点:1、抽象类不能创建实例,一般用来作为父类,封装子类共有的行为或属性
2、抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类
3、子类一定要重写父类的抽象方法,除非子类也是抽象类

4、abstract不能与final连用,也不能与static连用

5、抽象类的父类不一定是抽象类

1.3什么时候用:子类的具体实现都不一样,父类实现太麻烦或者没有必要。碰到这种感觉就直接把父类变成抽象,这样灵活减少复用。

二.接口

2.1接口:(interface)是抽象方法和常量值的定义的集合。通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。

就好像狗和鸟都继承动物这个类,可是鸟会飞这个属性怎么表现?如果写在动物父类那狗继承应该也有飞属性但是不和逻辑,如果写在鸟类如果新增蝴蝶继承动物又要重新写飞属性在蝴蝶里面,所以写在蝴蝶类比较麻烦,直接拉出来封装起来,这就是接口

2.2特点: 1、实现一个接口,必须实现这个接口的所有方法,除非它是一个抽象类
2、一个类不能继承多个父类(单继承),可以实现多个接口
3、类不可以继承接口,接口也不能继承类,接口可以继承接口
4、实现接口的方法,访问控制符不能变窄




原创粉丝点击