今天是第三天,到Java的抽象类
抽象类用abstract class去定义抽象类
如这样
public
class
AbstractDemo {
public
static
void
main(String [] args) {
Employee e =
new
Employee(
"George W."
,
"Houston, TX"
,
43
);
System.out.println(
"\n Call mailCheck using Employee reference--"
);
e.mailCheck();
}
}
但是这样会产生编译错误,抽象类不能被实例化
public
class
Salary
extends
Employee {
private
double
salary;
//Annual salary
public
Salary(String name, String address,
int
number,
double
salary) {
super
(name, address, number);
setSalary(salary);
}
public
void
mailCheck() {
System.out.println(
"Within mailCheck of Salary class "
);
System.out.println(
"Mailing check to "
+ getName()
+
" with salary "
+ salary);
}
public
double
getSalary() {
return
salary;
}
public
void
setSalary(
double
newSalary) {
if
(newSalary >=
0.0
) {
salary = newSalary;
}
}
public
double
computePay() {
System.out.println(
"Computing salary pay for "
+ getName());
return
salary/
52
;
}
public
class
AbstractDemo {
public
static
void
main(String [] args) {
Salary s =
new
Salary(
"Mohd Mohtashim"
,
"Ambehta, UP"
,
3
,
3600.00
);
Employee e =
new
Salary(
"John Adams"
,
"Boston, MA"
,
2
,
2400.00
);
System.out.println(
"Call mailCheck using Salary reference --"
);
s.mailCheck();
System.out.println(
"\n Call mailCheck using Employee reference--"
);
e.mailCheck();
}
}但这样实例化一个salary对象从employee继承成员方法是可以跑的
接下来是抽象类
声明抽象方法会造成以下两个结果:
- 如果一个类包含抽象方法,那么该类必须是抽象类。
- 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
说着是挺抽象,大概理解就是没法实例化但可以通过继承去实现。
接下来是接口interface用implements关键字去引用接口如
interface
Animal {
public
void
eat();
public
void
travel();
}
public
class
MammalInt
implements
Animal{
public
void
eat(){
System.out.println(
"Mammal eats"
);
}
public
void
travel(){
System.out.println(
"Mammal travels"
);
}
public
int
noOfLegs(){
return
0
;
}
public
static
void
main(String args[]){
MammalInt m =
new
MammalInt();
m.eat();
m.travel();
}
}
接口之间可以继承 用extends关键字。子承父类。
先到这,脑子好痒感觉要长出来了