Java基础:抽象类和抽象⽅法(abstract)
Java的抽象
Java是⾯向对象编程,⽽对象的描绘是通过Java的类来实现,如果⼀个类没有⾜够的信息来描述对象的话,那这个类就是抽象类。抽象的实现
在Java中定义抽象类或抽象⽅法都是通过abstract关键字,如下:
//抽象类的定义
public abstract class  Person{
//抽象⽅法的定义
public abstract void getName();
}
抽象的特点
抽象类也是类,也有成员变量,成员⽅法和构造函数。
抽象类不能实例化对象,所以抽象类必须要被继承。
抽象类虽然不能实例化,但也可以创建⼀个抽象类的对象变量,但是该对象变量,只能引⽤抽象类的⾮抽象⼦类的对象。
抽象类对象变量也可以调⽤抽象成员⽅法,但其实是调⽤其⼦类对象重写的抽象⽅法。
抽象类⾥可以没有抽象成员⽅法,但如果类⾥⾯的成员⽅法为抽象⽅法,则该类必须为抽象类。
抽象类⾥⾯的抽象成员⽅法只是声明,没有⽅法体,就是不给出抽象⽅法的具体实现。
当抽象类⾥⾯有抽象成员⽅法时,其继承于该抽象类的⼦类必须重写该抽象类的抽象成员⽅法,或者⼦类⾃⾝声明为抽象类。
类的构造⽅法、被static关键字修饰的成员⽅法不能声明为抽象⽅法。
⽰例代码如下:
//抽象类
public abstract class Person{
protected String name;
//抽象类构造函数
public Person(String name){
this.name=name;
}
//抽象⽅法的定义,没有⽅法体
public abstract String getName();
}
//继承抽象类的⾮抽象⼦类
实例化类和实例化对象public class Worker extends Person{
public Worker(String name){
super(name);
}
//⾮抽象⼦类必须重写抽象夫类的抽象⽅法public String getName(){
return name+" is worker";
}
}
//声明抽象类对象变量引⽤其⾮抽象⼦类对象private Person person=new Worker("David"); //抽象类对象变量调⽤成员⽅法
System.out.Name());
//输出结果是:David is worker

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。