继承
类是对象的抽象,继承是对某一批类的抽象,提高代码的复用性
- 通过继承可以简化类的定义,实现代码的重用
- 子类继承父类的成员变量和成员方法,但不能继承父类的构造方法
- java 中只有单继承
- java的多继承可以通过接口实现
eclipse 中ctrl+t 可以方便的查看类中的继承结构
/**
* 测试继承
* @author l
*
*/
public class TestExtends {
public static void main(String[] args){
Student stu = new Student();
stu.name ="lee";
stu.height=180;
stu.rest();
Student stu2 = new Student("bob",120,"math");
stu2.rest();
}
}
class Person{
String name;
int height;
public void rest(){
System.out.println("休息一小时");
}
}
class Student extends Person{
String major;
public void study(){
System.out.println("学习两小时");
}
public Student (String name,int height,String major){
this.name = name;
this.height=height;
this.major = major;
}
public Student(){
}
}
方法的重写 override
子类通过重写父类,把父类的状态和行为改为自身的状态和行为
重写注意事项:
- 重写父类时不可降低访问权限
- 重写方法必须和被重写方法具有相同方法名、参数列表和返回类型
- 子类不可将父类的static方法重写为实例方法,也不可以将实例方法重写为static
/**
* 测试重写
* @author l
*
*/
public class TestOverride {
public static void main(String[] args){
Horse h = new Horse();
h.run();
}
}
class Vehicle{
public void run(){
System.out.println("run....");
}
public void stop(){
System.out.println("stop....");
}
public Person whoIsPsg(){
return new Person();
}
}
class Horse extends Vehicle{
//方法重写
public void run(){
System.out.println("run....dededede");
}
public Student whoIsPag(){ //返回值类型小于等于父类的类型
return new Student();
}
}
文章仅供个人学,如有错误请指出,谢谢