抽象类的声明:在Java中使用abstract修饰的类叫抽象类
在Java中使用abstract修饰的方法叫抽象方法
语法格式:
abstract class Person {
//正常类的属性
String name;
//普通的成员方法
public void eat () {
System.out.print("吃饭");
}
//抽象方法 没有方法体的方法 没有大括号的
public abstract void sleep ();
}
抽象类的详解:
1.如果一个类中有抽象方法,那么这个类一定是抽象类
2.抽象方法是一个没有方法体的方法,是一个不完整的方法
3.抽象类中能有普通方法吗? 可以
4.抽象类能被实例化吗? 不能
5.抽象类不能被实例化,然后可以使用普通类去继承抽象类
6.在子类中 必须去重写父类的所有的抽象方法,让抽象方法变得有意义
7.在抽象类中,非抽象的方法能不能在子类被重写的,可以的
8.一个抽象类可以继承另外一个抽象类
9.一个抽象类也可以继承一个非抽象的类
接口
语法格式:
interface 接口的名字 {
属性
方法
}
package com.qf.c_interface;
interface USB {//接口的语法格式
//Abstract methods do not specify a body 抽象的方法的不能有一个方法体
public void connection();
//接口下面的方法都是抽象的方法 是默认的抽象的方法
}
//接口无法被实例化 那咋办? 只能写一个普通类去实现(implements) 接口
class Computer implements USB{
public void coding () {
System.out.println("敲代码");
}
@Override
public void connection() {
System.out.println("连接u盘");
}
}
public class Demo1 {
public static void main(String[] args) {
Computer computer = new Computer();
computer.coding();
computer.connection();
}
}
接口的详解:
语法格式:
1.使用关键字 interface来声明Java中的接口
2.接口下面是可以有属性的, 只不过属性必须赋值,因为默认带了 public static final 表示的是常量
3.接口下面 的方法都是抽象方法,尽管没有带abstract 默认也是public的
4.接口下面是一般都是抽象方法 有特殊的情况呢jdk1.8之后,增加了可以使用default修饰的方法 是可以带有方法体的
5.接口下面没有构造方法,就意味无法实例化
6.用一个普通类去实现(implements)接口
7.实现接口的时候一定要重写所有的抽象的方法,默认的方法可以重写也可以不写
8.一个类可以实现(implements)多个接口 写法 implements D, C,F
9.一个接口可以去继承(extends)另外一个接口