抽象类
什么是抽象:抽象是处理对象复杂性的一种技术,它只关注对象的主要细节而忽略了对象的次要细节。
抽象类?
1. 类和方法都要被关键字abstract去修饰
2. 抽象的方法不用去实现而只要声明一下就可以了
3. 抽象类不可以去实例化,也就是不能去new
4. 一个类中如果含有抽象方法,那么这个类就必须被声明为抽象类,继承它的子类必须去覆写这个抽象方法才可以被实例化
定义的格式:
abstract class 类名{
//声明数据成员;
//抽象方法
abstract返回值类型 方法名(参数1,参数2.。。。);//此方法为抽象方法,所以没有实现
//一般方法
}
大家可以看到,在抽象类中,即可以有抽象方法有可以有一般方法,不同的是,抽象方法必须被子类去覆写。
package com.chen.designpattern;
abstract class Person{private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name,int age){
this.age = age;
this.name = name;
}
public abstract String getSay();
public void say()
{
System.out.println(this.getSay());
}
}
class Worker extends Person{
private float money;
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
public Worker(String name, int age,float money) {
super(name, age);
this.setMoney(money);
}
public String getSay()
{
return "我是一个工人,我的名字是:"+super.getName()+",年龄:"+super.getAge()+",工资:"+this.getMoney();
}
}
class Student extends Person{
private float score;
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public Student(String name,int age,float score)
{
super(name,age);
this.setScore(score);
}
public String getSay()
{
return "我是一个学生,我的名字是:"+super.getName()+",年龄:"+super.getAge()+",成绩:"+this.getScore();
}
}
public class Demo {
public static void main(String[] args) {
Person p = new Worker("张三",12,3000);
p.say();
p = new Student("1chen",13,90);
p.say();
}
}
本文详细介绍了抽象类的概念及其在Java中的应用。重点讲述了抽象类的特点,包括如何定义抽象类和抽象方法,以及如何通过子类来实现这些抽象方法。同时,通过具体的代码示例展示了抽象类在实际项目中的使用。
1046

被折叠的 条评论
为什么被折叠?



