一、抽象类
1.概念
包含一个抽象方法的类就是抽象类。
2.抽象方法:
声明而未被实现的方法,抽象方法必须使用abstract关键字声明。
3.抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
4.抽象类不能直接实例化,要通过其子类进行实例化
代码示例:
abstract class Abs {
private int age;
public void tell() {
}
// 抽象方法
public abstract void say();
public abstract void print();
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
class AbsDemo extends Abs {
public void say() {
System.out.println(this.getAge());
}
public void print() {
}
}
public class AbsDemo01 {
public static void main(String[] args) {
// Abs a = new Abs();不能直接实例化
AbsDemo a = new AbsDemo();
a.setAge(20);
a.say();
a.print();
}
}
.
.
二、接口
1.接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。
2.接口格式:
interface interfaceName{
全局常亮
抽象方法
}
3.接口的实现必须通过子类。使用关键字implements,可以多实现。
4.一个子类可以同时继承抽象类和实现接口。
5.一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。
代码示例:
interface Inter1 {
public static final int AGE = 100;// 全局常量
public abstract void tell();
}
interface Inter2 {
public abstract void say();
}
abstract class Abs1 {
public abstract void print();
}
class A extends Abs1 implements Inter1, Inter2 {//4.一个子类可以同时继承抽象类和实现接口。
public void tell() {
}
public void say() {
}
public void print() {
}
}
interface Inter3 extends Inter1, Inter2 {//5.一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口,实现接口的多继承。
}
public class InterDemo01 {
public static void main(String[] args) {
// Inter i = new Inter(); //不能直接实现
A a = new A();//3.接口的实现必须通过子类。使用关键字implements,可以多实现
a.tell();
System.out.println(Inter1.AGE);// 全局常量通过类名(接口)来调用
a.say();
a.print();
}
}