您的位置:首页 > 其它

继承

2015-07-13 22:53 211 查看
继承是子类通过继承关系获取父类的所有非私有权限的属性和方法

继承的关键字是extends和implements

extends关键字用于继承普通类与抽象类,implements关键字用于继承接口(其中接口可以被多个同时继承,而普通类与抽象类只能被继承一个,但是继承具有传递性)

例如:

public class Student {} //定义一个普通类

public abstract class Teacher{}//定义一个抽象类

public interface Common{}//定义一个接口类

public class Student extends Teacher{}//继承抽象类,抽象类中如果有抽象函数,那就必须将抽象函数重写(子类的方法名、参数、返回值必须和父类继承过来的方法一致,方法体不一样)

public class Student implements Common{}//继承接口类,接口类中的所有抽象函数都必须重写

自动转型是在继承下完成的,自动转型是指子类对象自动转型为父类类型转型后的对象,如果子类重写了父类方法,则执行的仍然是重写后的

多态是指同一个类型的对象,调用同一个方法,但是执行过程不一样,则为多态

构造函数 访问权限 类名(){}//作用:用来构造对象

//特征:创建对象的时候执行,构造器有返回的值,返回的是对象在内存中的地址

一个类中没有定义构造函数的情况下,系统会自动生成一个无参的构造函数,而若自己建立一个有参数的构造函数的情况下,创建的对象就必须是有参数的构造函数而若自己定义了有参数和无参数的两个构造函数,则可以创建这两个构造函数的对象

例如:

1:public class Student{

Student stu=new Student();//创建对象

}

2:public class Student{

public Student(string a){

}

Student stu=new Student();//错误的,因为自己写了构造函数的情况下系统将不会自动生成构造函数

Student stu1=new Student("aa");//正确的

}

3:public class Student{

public Student(){}

public Student(int a){}

Student stu=new Stduent();//正确的

Student stu1=new Student(2);//正确的

}

方法重载:条件:1:必须在一个类中

2:方法名相同

3:参数类型,参数个数,参数顺序不一样的方法互为重载方法

关于构造函数的重载,必须是有参数的,但是在重载的条件下要用到无参数的构造函数来创建对象,那么必须重新构建一个无参数的构造函数

关于界面代码的重构重写:引用传递,构造方法传参数,this代表一个对象,当前类的对象(要用到继承,直接调用,当用到this 的地方,this可以省略)

例如:

public class Draw extends JButton{//Draw继承了jbutton,所以在函数jbutton里面可以不用定义一个JButton的对象就可以this即可,而this其实也是一个对象,是d1

public static void main(String[] args){

Draw d1=new Draw();

d1.jbutton();

}

public void jbutton(){

this.setSize(20,20);//this可以省略

this.setTitle("按钮");//this可以省略

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: