java继承
类的继承只能单继承,接口的继承可以多继承:一个类只能继承一个类,但一个类可以继承多个接口。
用extends关键字继承
java支持单继承,一个类只能继承一个类,但是可以多重继承:A继承B,B继承C……..。继承方式为:
class A extends B{}
public class Person {
public String name;
public int age;
public Person(){
System.out.println("父类无参构造方法");
}
public Person(String name,int age){
this.age=age;
this.name=name;
System.out.println("父类有参构造方法");
}
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 class Student extends Person{
private int number;
private String school;
public Student(){
//super();//调用父类无参构造方法
super("wsl",23);//调用父类有参构造方法
System.out.println("子类有参构造方法");
}
public void setNumber(int number){
this.number=number;
}
public int getNumber(){
return number;
}
public void setSchool(String school){
this.school=school;
}
public String getSchool(){
return school;
}
public void test(){
String name=super.name;
super.getAge();//调用父类非私有方法
}
public static void main(String args[]){
Student stu=new Student();
stu.setName("xm");//
stu.setSchool("HNU");
}
}
this关键字和super关键字
this和super有相似之处,我们不用创建对象就可以同过this调用本类的属性和方法;相似的我们可以通过super关键字调用父类的所有非私有的属性和非私有的方法,调用父类方法时super可以省略。
final关键字
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
- 声明类
final class 类名 {//类体}
- 声明方法
(public/private/default/protected) final 返回值类型 方法名(){//方法体}
注:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
用implents关键字继承
- 使用implements关键字可以继承多个接口,继承方式为:
class C implements A ,B{}//A和B为接口 - 接口中的方法都是虚方法,所以使用implements时必须重写调用的所有接口中的所有方法
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void work();
}
public class C implements A,B{
@Override
public void work() {
// TODO Auto-generated method stub
}
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void sleep() {
// TODO Auto-generated method stub
}
}
火桑花开 于2017/7/18