JAVA基础程序
(内容紧接上一部分)
父类(基类、超类)
子类(派生类)
- super:超级
- super();调用父级无参构造。
- super(传值);调用父级有参构造
- 注:只能写在方法第一行!
- super.成员变量:访问父类的成员变量
- super.方法名();访问父类的成员方法
- this:指调用父类的成员
- super:指调用父类的方法
父类:
public class Fulei {
int num;//定义一个成员变量
public Fulei(){
System.out.println(“父类无参被调用”);
}
public Fulei(int num){
this.num = num;
System.out.println(“父类有参被调用”+num);
}
public void method(){
System.out.println(“父类方法被调用”);
}
}
子类:
public class Zilei extends Fulei{
public Zilei(){
super(10);//子类继承而来,调用父类有参构造
System.out.println(“子类无参被调用”);
super.method();//访问父级
}
}
主方法:
public static void main(String[] args) {
// TODO 自动生成的方法存根
Zilei zi = new Zilei();
}
抽象abstract
*抽象方法:
*【修饰符】abstract 返回值类型/void 方法名();
*有抽象方法的类必须要用abstract修饰,变成抽象类
*抽象类:
- [修饰符] abstract class 类名{}
利用抽象的方法求图形面积:
父类:
public abstract class Tuxinfulei {
String name;
public Tuxinfulei(){
}
public Tuxinfulei(String name){
this.name = name;
}
public abstract void mianji();//没有方法体
}
子类一:
public class Yuanxin extends Tuxinfulei{
double r;
public Yuanxin(){
}
public Yuanxin(double r){
super("圆形");
this.r = r;
System.out.println("一个圆形");
}
public double Ymianji(){
double e =3.14;
return e*r*r;
}
//实现父类的抽象方法
public void mianji(){
double e =3.14;
System.out.println(e*r*r);
}
}
子类二:
public class Sanjiaoxin extends Tuxinfulei{
int d,h;
public Sanjiaoxin(){
}
public Sanjiaoxin(int d,int h){
super("三角形");
this.d = d;
this.h = h;
System.out.println("一个三角形");
}
public double Smianji(){
double e = 2;
return d*h/e;
}
public void mianji(){
//父类抽象的实现方法体
}
}
主方法:
public static void main(String[] args) {
// TODO 自动生成的方法存根
Yuanxin yx = new Yuanxin(1.5);
System.out.println(yx.Ymianji());
System.out.println("---------");
Sanjiaoxin sjx = new Sanjiaoxin(10,5);
System.out.println(sjx.Smianji());
yx.mianji();
sjx.mianji();
}