一.构造函数:把对象进行初始化
1.函数名与类名相同
2.不用定义返回值类型
3.可以被重载
4.不可以写return 类型
public class Person{
/**不用定义返回值类型*/
public Person(){
private String iid;
private String name;
private String sex;
private int age;
private double height;
/**建立一个构造方法,进行初始化,且构造函数没有返回值类型 即不写void一系列 */
public Man(String id,String name,String sex,int age,double height){
this.name=name;//name与上面私有名字一样,就要用this修饰一下
this.age=age;
this.height=height;
this.sex=sex;
id=iid;//形参与实参名字不一样时,可不用this修饰。
}
//可进行函数重载 不能进行重写
public Man(String name,int age,double height){
this.name=name;//name与上面私有名字一样,就要用this修饰一下
this.age=age;
this.height=height;
this.sex=sex;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//调用构造函数
Man man=new Man("sj","cj", "", 11, 11.2d);
System.out.println(man.age);
二.抽象和接口
1.抽象
a. 定义一个抽象方法,那么这个类也必须定义成抽象类。
b. 一个抽象类中即可有抽象方法也可有非抽象方法。
c.抽象类必须为public或protected(因为privite不能被子类继承) 缺省时 默认为public
d. 抽象类不能被new 创建对象 因为只有方法 没有实现内容
e.如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
2.接口
a. 接口中可以含有 变量和方法。接口中的变量会被隐式地指定为public static final变量,而方法会被隐式地指定为public abstract方法且只能是public abstract方法
b. 接口中所以方法不能有具体的实现 接口中的方法必须都是抽象方法
c. 一个类遵循特定的接口需要implements关键字 eg:class ClassName implements Interface1,Interface2,[....]{ }
例子:
//定义一个抽象类
public abstract class Person {
//抽象方法的声名
abstract String eat();
abstract String look();
public void walk(){
System.out.println("走路");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
//Child类继承Person抽象类 实现抽象类的方法
public class Child extends Person{
public static void main(String[] args) {
Child child=new Child();
child.eat();
child.look();
}
//实现接口中的抽象方法
@Override
String eat() {
// TODO Auto-generated method stub
System.out.println("用勺吃饭");
return null;
}
@Override
String look() {
// TODO Auto-generated method stub
System.out.println("看电视");
return null;
}
抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
一个类只能继承一个抽象类,而一个类却可以实现多个接口。