子父级继承
关键字 extends
首先创建一个父类
1 class Fu
2 {
3 String name;
4 int a=1;
5 public void word()
6 {
7 System.out.println("工作");
8 }
9 }
由一个子类继承
1 class Zi extends Fu
2 {
3 int a=2;
4 public void name()
5 {
6 System.out.println(name);
7 }
8 }
此时创建一个类,来调用
1 class Test()
2 {
3 Zi z=new Zi();
4 z.name="小张";
5 z.word();
6 z.name();
7 }
由此得出总结:
1)继承的出现提高了代码的复用性,提高软件开发效率
2)继承的出现让类与类之间产生了关系,提供了多态的前提
3)成员变量的变化:
当出现相同名字的成员变量时,就近原则。如上面出现的int a;
此时如果输出a那么,a=2;
此时如果想要输出Fu的a,那么使用关键字
super.a;
4)上面代码中,Fu有name,而Zi没有name,Zi会继承Fu的name属性,所以此时使用对 象z.name来修改name值是的修改Zi的name。
5)成员方法的特点
同样方法也会被继承
但当方法的返回值类型,方法名,参数相同时,方法会被覆盖
在子类中,访问父类中的成员方法格式:
super.父类中的成员方法();
抽象类的描述
当两个或者多个累的方法相同时,那么向上抽取,只抽取方法声明,不抽取就是想方法就是抽象类
抽象类的关键字 abstract
类和抽象法都需要使用abstract修饰
格式:
类: abstract class A{}
抽象方法:public abstract A();
抽象类的特点:
1)抽象类中油抽象方法,抽象方法必须写在抽象类中
2)抽象类不能直接创建对象
3)抽象类可以被继承,然后进行方法的重写,重写方法以后就可以进行对象的创建。
接口的表述
接口就是功能的集合,将方法的描述和具体的实现方法分开,优化了程序
接口的关键字interface
public interface 类名
接口的特点:
1)接口中也可以有抽象方法,也需要使用abstract修饰
2)接口同抽象类一样,不能创建对象,因为方法是抽象的,创建的对象毫无意义
3)接口的抽象方法可以被继承之后重写
4)接口中的变量都是常量不可以修改的,固定修饰符 public static final
抽象类和接口类的相同点和不同点:
相同点
1)都属于被继承或者最顶级的父类
2)都不可以直接创建对象
3)都包含有抽象方法,都可以在被继承之后重写这些方法
不同点
1)抽象类一次只能继承一个,接口可以被类多个实现
2)抽象类可以包含抽象方法和具体方法,而接口类只能有抽象方法