知识点梳理:
     1,怎样定义自己的类.
  MyStarFrame,MyStarPanel
  类中定义:
  (1)属性(数据),变量.
  (2)方法(函数),行为.
  (3)构造方法(特征,作用,何时被调用,构造方法怎么写).

  2,继承自已经存在的类.(API,自己写的).
     写继承:
    public class A extends B{
         /**方法的覆盖,重写
          * 父类中有同名同参的方法.
          */
          public void paint(){
        }

    /**扩展的新方法
       */
       public void panit(Graphics g){
       }
       }

   A a = new A();

  代码复用.
  this:当前对象
  super:父类对象

  class A{
    private int abc;

  public void m1(){
        this.abc=10;
    }
  }
    ...
    A a = new A();
    a.m1();
    A b = new A();
    b.m1();
    ...

===========================================
  A->B->C->D
  怎么用:
  1,线程,内部类,AWT,Swing,...

  面向对象:
  1,怎么样定义类:属性和方法
  2,什么是构造方法
  3,怎样生成对象,生成对象的语法和步骤.
  4,怎样去继承一个已经存在的类.
  5,继承的好处.
  6,方法的覆盖.
===========================
  继承关系是   
  A "is a" B
  A extends B
  关联(聚合):
  A "has a" B
  访问控制修饰符:
  类中的成员:属性和方法
  Class A{
    public int a;//在任何位置都可访问
    protected int b;//包内可见,子类可见
    int c; //包内可见
    private int d;//只能在本类的内部访问
    为对象封装提供语法基础.
===========================
  类的基础:
  类是封装,类产生了数据的封装.
  学生成绩管理:
  1,学生科目成绩:int,double
  2,科目名称:String
  3,学生:  
  private   学号:String,long
  private   姓名:String
  private   性别:char
  private   年龄:int(-2^31~+2^31-1)
  private   班级:String
  private   年级:String
  private   考试成绩:int
  public static int abc;//静态属性
  统一的规则来访问,
  public 方法:你希望外部访问的
  ===========
  private 方法:你不希望外部访问的,你只是为内部的其他方法提供服务.
  人类:\
    public void 吃饭(){
      1,找地方
      2,点菜
      3,上菜
      4,开吃
      5,消化
      6,排泄
    }
 
    private void 消化(){

  }
     ......
=========================
static:
  类的所有成员(属性和方法)分为2种:
  static成员=类成员
    描述类本身的特征的.
    访问时用类名直接访问:
      A.abc
      A.m1();
    在整个程序中只有一份,在类加载时初始化.

  非static成员=实例成员=对象成员
    描述对象个体的特征的
    需要对象名去访问:
  A a=new A();
  a.def;
  a.m2();
  有多少个对象就有多少个实例属性,在生成对象时创建.  
==================
java ABC
  一个JAVA程序运行时过程:
  1,启动JVM.
  2,加载要运行的类(ABC.class)
  3,找类的main函数,并运行main函数
==================================
关于JAVA的继承
  1,JAVA是单一继承,每个子类只有一个唯一的父类,整个继承结构是一棵树.
     树状结构的根是Object.
  2,好处:继承关系简单清晰.
  3,缺点:只能从一个父类继承功能.
     CAR    :move
     Weapon :attack
   Tank extends CAR implements Weapon
================================
什么是多态?
  一个对象多种形态.
  继承关系是对象多态的基础.
   "Is a"关系
    Bird b=new Bird();
    Animal a=new Bird();
    Object o=new Bird();
基本规则(定理):
  1,如果我们把子类对象当作父类对象来看,那么,我们只能访问父类中有定义的属性和方法.不能访问子类扩展的属性和方法.
   Animal a=new Bird();
     a.move();
     a.eat();
     a.singSong();//不能访问
     Person
       JavaTeacher  teachingJava()

  2,当子类覆盖了父类的方法,如果我们把子类对象当作父类对象来看,去调用该方法,则调用的是子类覆盖之后的方法.
     Animal a=new Bird();
     a.move();//输出 Flying!

Animal--  eat()
               马---eat(){"吃草"}
            狮子---eat(){"吃肉"}

    Animal a=new Bird();
    1,主观认为    客观存在
    2,编译时类型  运行时类型
    编译时类型:编译器把a当什么看  
    运行时类型:JVM把a当什么看
    a.singSong();//
==============================
抽象和接口
  具体的类,描述具体事物的.
  动物:抽象类,方法无法实现的(抽象的)

=================================
抽象类与接口
  即时战略游戏:星际争霸,帝国时代,...
  不同的兵种,进攻
  坦克兵
  机枪兵
  战斗机
  .....
  public abstract class Person{
  ... ....
      public abstract void attack();
  }

  public class Tank extends Person{
     public void attack(){
         发射炮弹
     }
  }

  public class Flighter extends Person{
     public void attack(){
         发射导弹
     }
  }

  Person[] army=new Person[10];
  army[0]=new Tank();
  army[1]=new Flighter();
  army[3]=....
  ... ...

  for(int i=0;i<army.length;i++){
      army[i].attack();
  }
==============================
接口:特殊的抽象类
  1,接口中所有方法都是抽象方法.
  2,接口没有实例属性,所有属性都是static final
  3,接口没有构造方法
  4,一个类可以同时实现多个接口

为什么要使用接口?
  1,对单一继承结构的补充.
  2,接口丰富了对象的多态.
  3,面向接口的编程(编程或架构的思想)

软件开发追求的目标:
  一个中心,两个基本点.
  一切以用户需求为中心,
  保证软件具有良好的可扩展和可维护性
  高内聚,低耦合的
  内聚力:软件系统独立完成某项工作的能力,不需要,只需要外部少量的参与.
  汽车:
  手动档-->自动档汽车-->无人驾驶
    5           3               1

  耦合度:模块与模块,类与类之间关联关系的复杂度.
  A->B->C->D->E(最安全)
  接口是稳定的,不变的,抽象的.

                                                                    若有不完善的地方请大家多提意见,转发时请注明出处!

java类的继承,多态,抽象类与接口的更多相关文章

  1. 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...

  2. java类与对象基础--抽象类和接口

    在java的类体系中,有两个比较特殊的抽象体--抽象类和接口.抽象体并不可以拥有具体的对象(而且接口甚至不是类),但是它们却是在java设计领域非常重要的两个概念,很多优秀的设计模式都是基于这两个概念 ...

  3. Java 对象的继承,抽象类,接口

    子父级继承 关键字 extends 首先创建一个父类 class Fu { String name; int a=1; public void word() { System.out.println( ...

  4. JAVA基础第三章-类与对象、抽象类、接口

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  5. Java入门系列之类继承、抽象类、接口(五)

    前言 C#和Java关于类.抽象类.接口使用方式基本相似,只是对应关键字使用不同罢了,本节呢,我们只是对照C#和Java中关于这三个概念在具体使用时,看看有哪些不一样的地方. 类继承 C#和Java在 ...

  6. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  7. 《Java技术》第三次作业--面向对象——继承、抽象类、接口

    1.阅读下面程序,分析是否能编译通过?如果不能,说明原因.应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? class Grandparen ...

  8. Java基础系列4:抽象类与接口的前世今生

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 1.抽象类: 当编写 ...

  9. java类的继承

    继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是 ...

  10. java类的继承的一些细节

    类的继承是java面向对象体系的一个重要方面(封装.继承.多态),对于java类的继承,需要注意如下细节. 1.构造函数. 如果一个类没有任何构造函数,系统会默认分配一个无参的构造函数给它,这个构造函 ...

随机推荐

  1. css之选择器总结

    首先我们来看下有哪些选择器??? 一.基础选择器: html标签选择器:通过html标签来选择元素. ①所有的html标签都可以当做选择器. ②无论标签藏多深都会被选中. ③选择的是所有的标签而不是某 ...

  2. JAX-RS REST 服务结果的自动封装

    如转发请注明: 原文luyiisme博客 当使用遵循 JAX-RS 标准的框架开发REST 服务时,我们倾向于定义个(含有JAX-RS)注解接口. 服务器端负责实现该接口,而客户端是该接口的代理进行远 ...

  3. 3.MQTT paho

    一.概述 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放.简单.轻量.易于实现.这些特点使它适用于受限环境.例如,但不仅限于此: 网络代价昂贵,带宽低.不可靠. 在 ...

  4. 5.Smart使用内置函数或者自定义函数

    1.使用内置函数 例如使用date函数 {"Y-m-d"|date:$time}格式{第一个参数|方法:第二个参数:第三个参数}即可转换成 2016-07-19  2.使用resi ...

  5. Linux下BMP文件不能正常读取问题的解决办法

    今天将之前在win下编好的读取BMP图像功能移植到UNIX下. 碰到的第一个问题是,Linux下的BMP文件头的结构体需要自己重新定义一遍. 第二个问题是,需要搞清楚Linux是32位的还是64位的. ...

  6. 【PHP】制作日历

    本期本博主将讲述两种利用PHP制作日历的方法,由于PHP日期函数的便捷性,使得我们制作日历这一过程变得相当简单 问题描述: 1.取到当前日期,并着色显示:2.根据当前日期,判断本月有多少天,一号是周几 ...

  7. Ext 常用组件解析

    Ext 常用组件解析 Panel 定义&常用属性 //1.使用initComponent Ext.define('MySecurity.view.resource.ResourcePanel' ...

  8. Python3控制结构与函数

    1.if语句的另一种写法: expression1 if boolean_expression else expression2 boolean_expression为true时使用expressio ...

  9. iOS获取ipa素材、提取ipa包资源文件

    当我们看到一款优秀的App时,我们可能对它的一些素材比较感兴趣,或者我们也想仿写一款类似app,那么怎么能获取到它的素材资源文件呢? 下面我以ofo举例: 1.打开iTunes,搜索ofo关键字,选择 ...

  10. (转载)Oracle10g 数据泵导出命令 expdp 使用总结(三)

    原文链接:http://hi.baidu.com/edeed/item/19aa0df856da3e19a6298894 Oracle10g 数据泵导出命令 expdp 使用总结(一) 14. JOB ...