面向对象编程

1 面向对象编程三大特征

1.1 封装

细节影藏,系统安全性,整体

1.2 继承

1.3 多态

2 继承

2.1 需求

创建图形化窗口,类似于普通window窗口

package com.ffyc.entity;
import javax.swing.*;
/*
extends:继承 
Mywindow继承JFrame,
将Mywindow my = new Mywindow();
改为JFrame my = new Mywindow();
 */
public class Mywindow extends JFrame{
    public  Mywindow(){
        this.setBounds(100,100,400,300);
         this.setTitle("演示继承");
         this.setVisible(true);
    }
    public static void main(String[] args){
        Mywindow my = new Mywindow();
    }
}

2.2 什么情况下使用继承

IS A

A is a B;

B---父类(基类)

A---子类

2.3 访问控制符

protect -- 继承(包);

private < 默认(不写):本包 < protected(继承) < public

Car

package com.ffyc.entity;

public class Car {
    public void run(){
        System.out.println("能跑的车");
    }
    public void guess(){
        System.out.println("你猜……");
    }
}

FlyCar

package com.ffyc.entity;

public class FlyCar  extends Car{
}

Test

package com.ffyc.test;
import  com.ffyc.entity.FlyCar;
public class TextFlyCar {
    public static void main(String[] args){
        FlyCar fc = new FlyCar();
        fc.run();
        fc.guess();
    }
}

测试

Animal

package com.ffyc.entity;

public class Animal {
    public void move(){
        System.out.println("动物能运动");
    }
}

Snake

package com.ffyc.entity;

public class Snake extends Animal{
}

TestAnimal

package com.ffyc.test;

import com.ffyc.entity.*;

public class TestAnimal extends Animal {
    public static void main(String[] args){
        Animal a = new Animal();
        a.move();

        Fish f = new Fish();
        f.move();

        Bird b = new Bird();
        b.move();

        Animal s = new Snake();//可用父类Animal代替Snake
        s.move();

        System.out.println(s instanceof  Animal);//“instance”:用来判定是否正确
    }
}

2.5 方法重写

2.5.1 方法重载

在一个类中,方法名称完全一样,参数的类型或者个数不一样

2.5.2 方法重写(覆盖)

继承关系

package com.ffyc.entity;

public class Bird extends Animal {
    @Override//覆盖,重写,输入m会弹出
    public void move(){
        System.out.println("早起的鸟儿有虫吃");
    }
}

 

3 多态(统一一种类型)

具有继承关系

1 父类的引用指向子类对象   Animal a = new Dog()   保证类型一致

2 子类对父类的方法进行重写

3 在不同时刻调用相同的方法,结果不同

4 动物模型问题

4.1 Animal中的方法

实际上没有多大作用,被子类方法重写

设计的目的,如果子类不重写,提供一个规范

4.2 抽象类

特点

*类,不能不被实例化 AbstractA a = new 子类()

*abstract

package com.ffyc.entity;
    public  abstract  class ACaculator {

        public abstract double add(double a, double b);
        public abstract double minus(double a, double b);
        public abstract double mul(double a, double b);
        public abstract double divide(double a, double b);
        public abstract int pow(int a ,int b);
    }

5 接口

java的继承----》单继承

多继承---》接口

abstract class ---> interface

extends ---> implements

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值