2019-04-15

                                                                       19/4/15面向对象高级

1.关键字:

        this的作用:

                  this.属性名   

                  this.方法名()

                  this.调用构造器

        static的作用:

                 变量         public static final int a = 10

                 方法

                 静态代码块

      final的作用:

                  类(不可以被继承)

                  方法

                  静态代码块

     abstract的作用:

                 抽象的,只有声明没有实现,如果一个类中有一个抽象方法,那么这个类必须定义为抽象类,有子类去实现

     extends的作用:

                  子类对父类的继承

2.继承

规则:

          Java中支持单继承,就是说每个类只有一个父类,不允许有多重继承

          一个父类可以有多个子类

           子类继承父类所有的属性和方法,但不继承父类的构造方法

注意:

            所有类默认继承Object

            继承是Java中科重用的一种体现

语法 以及 重写(class B中对class A中的 a 重写):

class A{

       public void a(){

               System.out.println("a");

        }

}

class B extends A{

       public void a(){

               System.out.println("b");

       }

}

重载

class C{

          public void c(){}

          public void c(int a)P{}

}

3.多态:

作用:继承多态可以优化我们程序设计,但是不能提高程序的效率。继承多态后期多用于查看api文档

满足条件:要有继承关系     方法重写    父类的引用指向子类的对象       例如:A x = new B()

语法:

//关于喜欢酒的一个多态描述

class Wine {

String s = "剑南春";

public void fun() {

         System.out.println("父类中wine的方法fun..........");

        }

}

class JNC extends Wine {

// 子类剑南春重载父类wine

// 重写父类中的fun1a

String s = "女儿红";

public void fun() {

         System.out.println("JNC子类的方法 fun.............");

       }

}

public class Ceshi {

           public static void main(String[] args){

                    Wine wine = new JNC(); //父类中的引用  指向  子类中的对象

                     wine.fun();

                       System.out.println(wine.s);

        }

}

4.abstract 抽象类

       如果一个类中有一个抽象方法,那么这个类一定是抽象类(方法只有声明,没有实现),子类负责实现抽象该方法


       当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。

  我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。

  例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。

所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。

语法:

package javastudy;publicclass AbstractDemo1 {

    publicstaticvoid main(String[] args) {

           }

}// 这就是一个抽象类abstractclass Animal {

    String name;

    int age;

    // 动物会叫

     public abstract void cry(){

   // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象方法在父类中不能实现,所以没有函数体。但在后续在继承时,要具体实现此方法。

}

    // 抽象类可以被继承

   // 当继承的父类是抽象类时,需要将抽象类中的所有抽象方法全部实现。

   class cat extends Animal {

    // 实现父类的cry抽象方法

    public void cry() {

        System.out.println("猫叫:");

    }

注意:

     1.用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽象方法。

     2.抽象方法不能有方法主体。格式如下:

                     abstrac tvoid xxx();

     3.抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

     4.抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

     5.一旦类中包含了abstract方法,那类该类必须声明为abstract类。




抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容