继承 在程序中,如果声明一个类继承另一个类,需要使用extends关键字。
- 在Java中,累的继承是指在一个现有的类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称为父类,子类会自动拥有父类所有可继承的属性和方法。
父类
public class Employee{
string name;
public void work( ){
System .out.println(" 员工在工作。");
}
}
子类1
public class Develop extends Employee{
String name;
public void work( ){
System .out.println("员工在工作。");
}
}
子类2
public class weihu extends Emplyee{
public void println(){
System.out.println("name");
}
}
继承-注意事项
1.在Java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个父类。
2.多个类可以继承一个父类。
class A{ }
class B extends A{ }
class C extends A{ } //B类C类都可以继承A
3.在Java中,多层继承 是可以的,即一个类的父类 可以再去继承另外的父类服,例:
class A{}
class B extends A{}
class C extends B{} //C类继承B类,C类时B类的子类,同时也是A类的子类
4.在Java学习中,子类和父类是一种概念,也就是说一个类是某个类父类的同时,也可以说是另一个类的子类。
继承-子父类中成员变量的特点
- 当程序中通过对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,当子类中不存在就会执行父类中相应的方法。
- 当子类中出现与父类一模一样的方法时,就会出现覆盖操作,也成为override 重写,复写或者覆盖。
- *覆盖(重写)*当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。
-
- 方法重写的注意事项
- 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
- 写法上稍微注意:必须一模一样:方法的返回值类型 方法名 参数列表都要一样。
-私有类,不能继承
抽象类
- 抽象方法,必须存在抽象类中,也就是说,,类必须用abstract修饰
1.抽象方法定义格式
—public abstract 返回值类型 方法名(参数);
2.抽象类定义的格式
—abstract class 类名{
} - 抽象类,不能实例化对象,不能new。
-抽象类使用方法:定义类继承抽象类,将抽象方法进行重写,创建子类的对象,如下
**父类**
public abstract class Develop{
public abstract void work( );
//抽象方法必须用抽象类
}
**子类1**
public class JavaEE extends Develop{
public void work( ){
System.out.println(" JavaEE工程师在开发B/S软件");
}
}
**子类2**
public class Android extends Develop{
public void work( ){
System.out.println(" Android工程师在开发手机软件");
}
}
***测试***
public static void main (String[ ] args){
JavaEE ee=new JavaEE( );
ee.work( );
Android and=new Android( );
and.work( );
}
}
抽象类注意问题
- 抽象类一定是个父类
- 抽象类中可以定义抽象方法,但不让该类创建对象,方法可以直接让子类去使用
- 抽象关键字abstract不可以和private,final,static共存!