Java 抽象类经典例子2
目录
问题描述
抽象类的练习
学生案例:
具体类:一般学生 优秀学生
共性:姓名 年龄 年纪
吃饭
差异: 学习内容
代码块
代码块语法遵循标准markdown代码,例如:
abstract class student {
//成员变量
private String name;
private int age;
private int grand;
//无参构造方法
public student(){}
//带参构造方法
public student(String name,int age,int grand){
this.name=name;
this.age=age;
this.grand=grand;
}
public void setname(String name){
this.name=name;
}
public String getname(){
return name;
}
public void setage(int age){
this.age=age;
}
public int getage(){
return age;
}
public void setgrand(int grand){
this.grand=grand;
}
public int getgrand(){
return grand;
}
//抽象方法
abstract public void study();
//成员方法
public void eat(){
System.out.println("该吃饭了:");
}
}
class Basicstudent extends student {
//构造方法
public Basicstudent(){}
public Basicstudent(String name,int age,int grand){
super(name,age,grand);
}
public void study(){
System.out.println("Basicstudent: study");
}
}
class Goodstudent extends student{
public Goodstudent(){}
public Goodstudent(String name,int age,int grand){
super(name,age,grand);
}
public void study(){
System.out.println("Goodstudent: study");
}
}
public class AbstractTest3{
public static void main(String[] args){
student s =new Basicstudent();
s.setname("Basicstudent1");
s.setage(20);
s.setgrand(1111);
System.out.println(s.getname()+"----"+s.getage()+"----"+s.getgrand());
s.eat();
s.study();
s =new Basicstudent("Basicstudent1",20,2222);
System.out.println(s.getname()+"----"+s.getage()+"----"+s.getgrand());
s.eat();
s.study();
}
}
答案
Basicstudent1—-20—-1111
该吃饭了:
Basicstudent: study
Basicstudent1—-20—-2222
该吃饭了:
Basicstudent: study