Java中的抽象类
一、抽象类:
(一).定义
1.在Java中当一个类被abstract关键字修饰时,该类就叫抽象类。
2.抽象类是从多个具体类中抽象出来的父类,属于高层次的抽象。
/ * * * * * * * * * * * * */
(二)、抽象类的原则:
1.抽象类必须使用abstract关键字进行修饰。
2.抽象类不能被实例化【无法使用new关键字创建对象实例】。
3.抽象类包含属性、方法、构造方法、初始化、内部类、枚举类。
/* * * * * * * * * * * * * * * * * * * * */
(三)、抽象类的语法:
abstract class <类名>{
[属性声明]
[方法声明]
}
二、抽象方法
(一)、定义
1.在Java中当一个类的方法被abstract修饰后,该方法就叫修饰方法。
2.抽象方法所在的类必须定义为抽象类
(二)、抽象方法的语法
[访问修饰符]abstract<返回值类型><方法名>([参数列表]);
总之;抽象是Java的特性之一,也是处理对象复杂性的一种技术!它是指
只关注对象的重要细节,忽略次要细节,在抽象类中定义的抽象方法,是由
子类实现,而不是去覆盖,因为在父类中没有具体的实现!
例一:
父类:
abstract class Fathar{
abstract void display(String str);
}
子类:
abstract class Son sxtends Fathar{
void display(String str){
void method1(){
....
}
void method2(){
....
}
....
}
}
这时我们要用display方法,别的都不用;我们可以:
Fathar fa = new Son();
fa.display();
例二:
public abstract class Pet {
public String name;
//抽象类中可以有普通方法
public void eat(String name) {
System.out.println(name + " 在吃饭...");
}
//抽象类中的抽象方法
public abstract void sleep(String name);
}
/**
* 宠物猫
*/
public class Cat extends Pet{
@Override
public void sleep(String name) {
System.out.println(name + "在睡觉...");
}
}
/**
* 宠物狗
*/
public class Dog extends Pet{
public void sleep(String name) {
System.out.println(name + "在憨憨的呼呼大睡...");
}
}
public class Main {
public static void main(String[] args) {
// 抽象父类的引用指向子类的对象
Pet pet = new Cat();
pet.name = "jerry";
System.out.println(pet.name);
}
}