从零开始学JAVA DAY6

再说继承:

继承是类与类之间的一种关系,对于一个参数,在继承之后,会在子类中隐藏自动的加上一个代码块super()

关键字:super  

原本学了一个this关键字,在复习一下,this关键字是该类直接调用对象进行操作,而super也差不多,只是调用的是父类

为什么要有这样一个代码块super()/this()呢? 就是为了初始化父类的一些数,因为在子类中要调用这些函数或者值,那么先把它初始化成与父类相同,防止错误

那么自动加了这个初始化后,一创建子类,那么会先执行父类中的初始化函数

class Fu
{
    Fu(){
        System.out.println("Fu");
    }
}

class Zi extends Fu
{
    Zi(){
        System.out.println("Zi");
    }
}

class Demo
{
    public  static void main (String[] args)
    {
        //Fu fu = new Fu();
          Zi zi = new Zi();



    }
}

输出 Fu

       Zi

子类可以覆盖父类的函数,可以利用这一点来拓展程序,但是我们如果只要调用这个父类中的4个函数,而不需要6个函数时,我们可以使用final修饰符

final修饰符:最终的意思

可以作用于定义常量   final int PI = 3.14 一旦定义就无法再进行更改(常量一般全用大写字母来表示)

可以作用于函数  一旦这个函数被final 修饰,它就不能被继承或者聚合 

继承除了extends关键字之外还有另一个关键字implements

implements 实现:

其中子类中所有的功能都是抽象的需要自己来实现,继承虽然只能一个但是接口能多个,中间用,隔开

比方说 

class Zi extends Fu implements Fu1, Fu2

这是要引入接口概念:
初期理解:

是一个特殊的抽象类,如果抽象类中的方法都是抽象的,那么该类可以通过接口形式来表示

抽象类里里面才有抽象方法

修饰符:abstract抽象 不需要具体的实现

接口:interface 是一个特殊类,里面全是抽象的

类与接口之间是实现关系 implements

实现方法:

interface B

{

}

class A implement B

{

}

类与类之间,接口与接口之间是继承关系 extends 

接口不可以创建对象,需要被子类实现,要把所有抽象函数都具体化覆盖

interface inter

{

 public abstract  void show();

里面有固定格式

常量: public static final int X = 3;

函数: public static final void show();

所以在被调用时记得提高权限public

 

接口与继承:接口能多继承而父类子类只能单继承的原因

一个子类如果能多继承如果有两个父类有相同的函数,那么会矛盾

而接口中没有具体的实现方法

 

接口的应用:

interface 相当于一个引导,里面没有具体的方法体

可以写成 void show();

而类中有具体的方法体 void show(){}

除了interface  如果一个类里面的方法体无法确定那就用abstract 抽象

接口实例

interface smoking
{
    void smoke();
}

abstract class student
{
   abstract  void study();//因为方法体为抽象所以类名要改成抽象
   void sleep(){
    System.out.println("sleep");
   }
}
class people extends student implements smoking
{
    void study(){

    }
    public void smoke(){

    }
}

class demo
{
    public static void main(String[] args)
    {
        people zhangsan = new people();
        zhangsan.sleep();   
    }
}

  

posted @ 2015-08-25 19:43  Painting、时光  阅读(105)  评论(0编辑  收藏  举报