子父级继承
关键字 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)抽象类可以包含抽象方法和具体方法,而接口类只能有抽象方法