Java基础知识5:抽象类、接口、枚举

现在是2020年9月8日21:23:23,继续梳理Java基础的主干知识。

抽象类(abstract)
  • 当定义某个类时,有些方法需要根据具体情况具体实现,所以需要定义方法的首部,而不需要实现方法体,这是需要在方法的修饰符中加上abstract关键字来声明该方法是抽象方法,对应的类就变成了一个抽象类,类的修饰符部分也加上一个abstract进行标识。
  • 抽象类的构成:类的所有可能的构成元素 + 抽象方法
  • 抽象类中的抽象方法必须在子类中具体实现
  • 抽象类不能直接实例化,需要子类创建对象向上转型
    备注:关于继承的内容后面再说。
public abstract class AbstractClazz{
	// 类所有可能的构成元素:构造方法、类级别元素、对象级别元素
	
	// 抽象方法:修饰符部分加上abstract关键字,方法体省略,用分号代替。
	public abstract void abstractMethod();
}
接口(interface)
  • 接口是由常量和抽象方法组成的特殊抽象类,是对抽象类的进一步抽象。
  • 接口中定义的抽象方法需要通过实现类来具体实现。
  • 优秀的程序员都是面向接口编程——将方法抽象于接口中,由实现类具体实现,这样可以实现解耦合,有很好的可拔插性和扩展性。
  • 接口可以继承其他的多个接口。
  • 接口也必须具体实现,不能直接实例化。
public interface MainIntf{
	// 常量
	double PI = 3.14;
	// 抽象方法
	void abstractMethod();
}
枚举(enum)
  • 枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。
// 枚举
public enum Gender {
    MALE, FEMALE
}
// 测试类
public class GenderTest {
    public static void main(String[] args) {
        System.out.println(Gender.FEMALE);
    }
}
注解(Annotation)
  • 注解,又称标注,是 JDK5.0 引入的一种注释机制。
  • 常见的注解有:@Override(重写)、@Deprecated(已过时)
  • 注解可以开发者自定义,可以在类、方法、变量、形参中使用。
    (1)自定义注解
/**
 * 注解中属性的类型可以是:
 *      byte short int long float double boolean char 
 * 		String Class 枚举类型及其数组形式
 */
public @interface MyAnnotation {

    // 属性名为value时,如果使用注解时只有value一个属性需要赋值,可以省略“value=”
    String value();

    // 使用default关键字加上默认值,可以在使用注解时不用赋值
    // 如果没有加上默认值,必须在使用注解时给出属性对应的值
    String name() default "";

    int age() default 18;

    Class[] clazz() default {};
}

(2)使用注解

public class AnnotationTest {
    @MyAnnotation("12")
    public static void method(){}
}
  • Java 标注可以通过反射获取标注内容。
  • 注解的注解称为元注解,常见的元注解有:@Target、@Retention
    (1)@Target:标明被注解的注解可以用在哪些位置上,如类、方法、变量等。
    (2)@Retention:标明被注解的注解最终保存在哪个地方
//@Retention(RetentionPolicy.SOURCE)// 该注解只被保存在java源文件中
//@Retention(RetentionPolicy.CLASS)// 该注解被保存在class文件中
//@Retention(RetentionPolicy.RUNTIME)// 该注解被保存在class文件中,
									 // 并且可以被反射机制所读取
public @interface Anno{}
  • 备注:
    (1)枚举类型和注解类型使用得不多,但是可以根据开发场景的不同适当的使用。
    (2)注解类型在JavaEE的高级框架中随处可见,了解其基本的实现原理,有利于后期对代码的理解。
    (3)反射这一内容后续再展开。
    这次的分享先到这里,如有雷同纯属巧合,谢谢。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值