展开全部
含有抽象e69da5e6ba9062616964757a686964616f31333332613662方法的类就只能是抽象类
抽象类结构:absract class 类名{ }
抽象方法结构:(public) absract void 方法名();
抽象类只能用来继承,抽象方法必须被重写
抽象类不能实例化,也就是不能用new调用
抽象类可以有:抽象类、普通属性和方法、构造方法(不能用new实例,只能用来被子类调用)public abstract class Human {//抽象父类
private final int time=++count;//对象计数器
private static int count;//静态池
//属性封装
private String name;//封装三步:隐藏属性,提供getter与setter方法,构造中调用setter初始化
private int age;
private String sex;
//getter&&setter
public String getName(){
return this.name;
}
public void setName(String name){
//处理代码:姓名不能为空,且不能包含数字
if(name.length()==0){
System.out.println("姓名不能为空");
}
else if(this.isWrongName(name)){//调用私有方法处理
System.out.println("非法姓名,不能包含数字");
}
else{
this.name=name;
}
}
private boolean isWrongName(String name){//判断非法姓名输入(私有)
char[] ch=name.toCharArray();
for(int i=0;i
try{
int s=Integer.parseInt(String.valueOf(ch[i]));
s++;//废
return true;
}
catch(Exception e){
continue;//出错就继续下一次循环转换
}
}
return false;//先返回错误
}
public int getAge(){
return this.age;
}
public void setAge(int age){
if(age<=0){
System.out.println("年龄有误");
}
else{
this.age=age;
}
}
public String getSex(){
return this.sex;
}
public void setSex(String sex){
if(sex.length()>1||sex.length()==0){
System.out.println("性别设定错误");
}
else if(sex.toCharArray()[0]=='男'||sex.toCharArray()[0]=='女'){
this.sex=sex;
}
else{
System.out.println("性别设定错误");
}
}
//构造
public Human(){//无参
this("无1名氏",25,"男");
}
public Human(String name,int age,String sex){//全参
this.setName(name);
this.setAge(age);
this.setSex(sex);
}
//抽象方法
public abstract void speak();//说话
public abstract void work();//工作
public abstract void eat();
//获取对象创建数目
public int getHumanClassUseTimes(){
return this.time;
}
}